diff --git a/.github/workflows/check_translations.yaml b/.github/workflows/check_translations.yaml
new file mode 100644
index 0000000000..3407dc7fd8
--- /dev/null
+++ b/.github/workflows/check_translations.yaml
@@ -0,0 +1,37 @@
+name: Check Translations
+
+on:
+ push:
+ branches:
+ - l10
+ pull_request:
+ branches:
+ - l10
+
+jobs:
+
+ check:
+ runs-on: ubuntu-latest
+
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ INVENTREE_DB_NAME: './test_db.sqlite'
+ INVENTREE_DB_ENGINE: django.db.backends.sqlite3
+ INVENTREE_DEBUG: info
+ INVENTREE_MEDIA_ROOT: ./media
+ INVENTREE_STATIC_ROOT: ./static
+
+
+ steps:
+ - name: Checkout Code
+ uses: actions/checkout@v2
+ - name: Install Dependencies
+ run: |
+ sudo apt-get update
+ sudo apt-get install gettext
+ pip3 install invoke
+ invoke install
+ - name: Test Translations
+ run: invoke translate
+ - name: Check Migration Files
+ run: python3 ci/check_migration_files.py
diff --git a/InvenTree/InvenTree/api_tester.py b/InvenTree/InvenTree/api_tester.py
index 7af7c82914..3d8481f84e 100644
--- a/InvenTree/InvenTree/api_tester.py
+++ b/InvenTree/InvenTree/api_tester.py
@@ -46,7 +46,7 @@ class InvenTreeAPITestCase(APITestCase):
self.user.is_staff = True
self.user.save()
-
+
for role in self.roles:
self.assignRole(role)
diff --git a/InvenTree/InvenTree/ci_render_js.py b/InvenTree/InvenTree/ci_render_js.py
index 62e3fc4667..fed1dfb221 100644
--- a/InvenTree/InvenTree/ci_render_js.py
+++ b/InvenTree/InvenTree/ci_render_js.py
@@ -1,9 +1,8 @@
"""
-Pull rendered copies of the templated
+Pull rendered copies of the templated
"""
-from django.http import response
-from django.test import TestCase, testcases
+from django.test import TestCase
from django.contrib.auth import get_user_model
import os
diff --git a/InvenTree/InvenTree/fields.py b/InvenTree/InvenTree/fields.py
index 26fddfa912..fa91831679 100644
--- a/InvenTree/InvenTree/fields.py
+++ b/InvenTree/InvenTree/fields.py
@@ -53,7 +53,7 @@ class InvenTreeModelMoneyField(ModelMoneyField):
"""
Custom MoneyField for clean migrations while using dynamic currency settings
"""
-
+
def __init__(self, **kwargs):
# detect if creating migration
if 'migrate' in sys.argv or 'makemigrations' in sys.argv:
diff --git a/InvenTree/InvenTree/filters.py b/InvenTree/InvenTree/filters.py
index 94e6e1765b..8272673fc3 100644
--- a/InvenTree/InvenTree/filters.py
+++ b/InvenTree/InvenTree/filters.py
@@ -38,7 +38,7 @@ class InvenTreeOrderingFilter(OrderingFilter):
ordering = []
for field in ordering_initial:
-
+
reverse = field.startswith('-')
if reverse:
@@ -52,7 +52,7 @@ class InvenTreeOrderingFilter(OrderingFilter):
"""
Potentially, a single field could be "aliased" to multiple field,
-
+
(For example to enforce a particular ordering sequence)
e.g. to filter first by the integer value...
diff --git a/InvenTree/InvenTree/management/commands/rebuild_thumbnails.py b/InvenTree/InvenTree/management/commands/rebuild_thumbnails.py
index bf36a612d1..1169112ce7 100644
--- a/InvenTree/InvenTree/management/commands/rebuild_thumbnails.py
+++ b/InvenTree/InvenTree/management/commands/rebuild_thumbnails.py
@@ -36,7 +36,7 @@ class Command(BaseCommand):
img = model.image
url = img.thumbnail.name
loc = os.path.join(settings.MEDIA_ROOT, url)
-
+
if not os.path.exists(loc):
logger.info(f"Generating thumbnail image for '{img}'")
diff --git a/InvenTree/InvenTree/metadata.py b/InvenTree/InvenTree/metadata.py
index 46b3acfc21..e0f8a23322 100644
--- a/InvenTree/InvenTree/metadata.py
+++ b/InvenTree/InvenTree/metadata.py
@@ -31,7 +31,7 @@ class InvenTreeMetadata(SimpleMetadata):
"""
def determine_metadata(self, request, view):
-
+
self.request = request
self.view = view
@@ -98,7 +98,7 @@ class InvenTreeMetadata(SimpleMetadata):
Override get_serializer_info so that we can add 'default' values
to any fields whose Meta.model specifies a default value
"""
-
+
serializer_info = super().get_serializer_info(serializer)
model_class = None
@@ -174,7 +174,7 @@ class InvenTreeMetadata(SimpleMetadata):
# Extract extra information if an instance is available
if hasattr(serializer, 'instance'):
instance = serializer.instance
-
+
if instance is None and model_class is not None:
# Attempt to find the instance based on kwargs lookup
kwargs = getattr(self.view, 'kwargs', None)
@@ -240,7 +240,7 @@ class InvenTreeMetadata(SimpleMetadata):
# Introspect writable related fields
if field_info['type'] == 'field' and not field_info['read_only']:
-
+
# If the field is a PrimaryKeyRelatedField, we can extract the model from the queryset
if isinstance(field, serializers.PrimaryKeyRelatedField):
model = field.queryset.model
diff --git a/InvenTree/InvenTree/serializers.py b/InvenTree/InvenTree/serializers.py
index ab5a27594f..90cc857cdd 100644
--- a/InvenTree/InvenTree/serializers.py
+++ b/InvenTree/InvenTree/serializers.py
@@ -66,7 +66,7 @@ class InvenTreeMoneySerializer(MoneyField):
if currency and amount is not None and not isinstance(amount, MONEY_CLASSES) and amount is not empty:
return Money(amount, currency)
-
+
return amount
diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py
index cda30b0a27..038d07600f 100644
--- a/InvenTree/InvenTree/settings.py
+++ b/InvenTree/InvenTree/settings.py
@@ -26,6 +26,7 @@ import moneyed
import yaml
from django.utils.translation import gettext_lazy as _
from django.contrib.messages import constants as messages
+import django.conf.locale
def _is_true(x):
@@ -306,7 +307,7 @@ MIDDLEWARE = CONFIG.get('middleware', [
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
- 'InvenTree.middleware.AuthRequiredMiddleware'
+ 'InvenTree.middleware.AuthRequiredMiddleware',
])
# Error reporting middleware
@@ -664,6 +665,7 @@ LANGUAGES = [
('el', _('Greek')),
('en', _('English')),
('es', _('Spanish')),
+ ('es-mx', _('Spanish (Mexican)')),
('fr', _('French')),
('he', _('Hebrew')),
('it', _('Italian')),
@@ -681,6 +683,25 @@ LANGUAGES = [
('zh-cn', _('Chinese')),
]
+# Testing interface translations
+if get_setting('TEST_TRANSLATIONS', False):
+ # Set default language
+ LANGUAGE_CODE = 'xx'
+
+ # Add to language catalog
+ LANGUAGES.append(('xx', 'Test'))
+
+ # Add custom languages not provided by Django
+ EXTRA_LANG_INFO = {
+ 'xx': {
+ 'code': 'xx',
+ 'name': 'Test',
+ 'name_local': 'Test'
+ },
+ }
+ LANG_INFO = dict(django.conf.locale.LANG_INFO, **EXTRA_LANG_INFO)
+ django.conf.locale.LANG_INFO = LANG_INFO
+
# Currencies available for use
CURRENCIES = CONFIG.get(
'currencies',
diff --git a/InvenTree/InvenTree/static/script/inventree/inventree.js b/InvenTree/InvenTree/static/script/inventree/inventree.js
index 85ae042728..078cb52924 100644
--- a/InvenTree/InvenTree/static/script/inventree/inventree.js
+++ b/InvenTree/InvenTree/static/script/inventree/inventree.js
@@ -208,7 +208,7 @@ function inventreeDocReady() {
});
// Callback for "admin view" button
- $('#admin-button').click(function() {
+ $('#admin-button, .admin-button').click(function() {
var url = $(this).attr('url');
location.href = url;
diff --git a/InvenTree/InvenTree/tasks.py b/InvenTree/InvenTree/tasks.py
index 801c75aa26..adb9c0a370 100644
--- a/InvenTree/InvenTree/tasks.py
+++ b/InvenTree/InvenTree/tasks.py
@@ -106,7 +106,7 @@ def offload_task(taskname, *args, force_sync=False, **kwargs):
except NameError:
logger.warning(f"WARNING: '{taskname}' not started - No function named '{func}'")
return
-
+
# Workers are not running: run it as synchronous task
_func(*args, **kwargs)
diff --git a/InvenTree/InvenTree/test_api.py b/InvenTree/InvenTree/test_api.py
index 6ace21b576..0e813d48de 100644
--- a/InvenTree/InvenTree/test_api.py
+++ b/InvenTree/InvenTree/test_api.py
@@ -19,7 +19,7 @@ from base64 import b64encode
class HTMLAPITests(TestCase):
"""
Test that we can access the REST API endpoints via the HTML interface.
-
+
History: Discovered on 2021-06-28 a bug in InvenTreeModelSerializer,
which raised an AssertionError when using the HTML API interface,
while the regular JSON interface continued to work as expected.
@@ -280,7 +280,7 @@ class APITests(InvenTreeAPITestCase):
"""
Tests for detail API endpoint actions
"""
-
+
self.basicAuth()
url = reverse('api-part-detail', kwargs={'pk': 1})
diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py
index 648600265c..584403fc84 100644
--- a/InvenTree/InvenTree/urls.py
+++ b/InvenTree/InvenTree/urls.py
@@ -77,7 +77,7 @@ apipatterns = [
settings_urls = [
url(r'^i18n/?', include('django.conf.urls.i18n')),
-
+
url(r'^appearance/?', AppearanceSelectView.as_view(), name='settings-appearance'),
url(r'^currencies-refresh/', CurrencyRefreshView.as_view(), name='settings-currencies-refresh'),
diff --git a/InvenTree/InvenTree/version.py b/InvenTree/InvenTree/version.py
index ee48612cc1..00f7ead753 100644
--- a/InvenTree/InvenTree/version.py
+++ b/InvenTree/InvenTree/version.py
@@ -123,10 +123,10 @@ def isInvenTreeDevelopmentVersion():
def inventreeDocsVersion():
"""
Return the version string matching the latest documentation.
-
+
Development -> "latest"
Release -> "major.minor.sub" e.g. "0.5.2"
-
+
"""
if isInvenTreeDevelopmentVersion():
diff --git a/InvenTree/build/api.py b/InvenTree/build/api.py
index 819ffed1b6..2ca9dd31dc 100644
--- a/InvenTree/build/api.py
+++ b/InvenTree/build/api.py
@@ -198,7 +198,7 @@ class BuildUnallocate(generics.CreateAPIView):
queryset = Build.objects.none()
serializer_class = BuildUnallocationSerializer
-
+
def get_serializer_context(self):
ctx = super().get_serializer_context()
@@ -231,7 +231,7 @@ class BuildComplete(generics.CreateAPIView):
ctx['build'] = Build.objects.get(pk=self.kwargs.get('pk', None))
except:
pass
-
+
return ctx
@@ -296,7 +296,7 @@ class BuildItemList(generics.ListCreateAPIView):
kwargs['location_detail'] = str2bool(params.get('location_detail', False))
except AttributeError:
pass
-
+
return self.serializer_class(*args, **kwargs)
def get_queryset(self):
diff --git a/InvenTree/build/models.py b/InvenTree/build/models.py
index 4fe22f7e0e..d6dd0df0e3 100644
--- a/InvenTree/build/models.py
+++ b/InvenTree/build/models.py
@@ -66,7 +66,7 @@ def get_next_build_number():
attempts.add(reference)
else:
break
-
+
return reference
@@ -94,13 +94,13 @@ class Build(MPTTModel, ReferenceIndexingMixin):
"""
OVERDUE_FILTER = Q(status__in=BuildStatus.ACTIVE_CODES) & ~Q(target_date=None) & Q(target_date__lte=datetime.now().date())
-
+
@staticmethod
def get_api_url():
return reverse('api-build-list')
def api_instance_filters(self):
-
+
return {
'parent': {
'exclude_tree': self.pk,
@@ -1178,7 +1178,7 @@ class BuildItem(models.Model):
bom_item = PartModels.BomItem.objects.get(part=self.build.part, sub_part=ancestor)
except PartModels.BomItem.DoesNotExist:
continue
-
+
# A matching BOM item has been found!
if idx == 0 or bom_item.allow_variants:
bom_item_valid = True
@@ -1234,7 +1234,7 @@ class BuildItem(models.Model):
thumb_url = self.stock_item.part.image.thumbnail.url
except:
pass
-
+
if thumb_url is None and self.bom_item and self.bom_item.sub_part:
try:
thumb_url = self.bom_item.sub_part.image.thumbnail.url
diff --git a/InvenTree/build/serializers.py b/InvenTree/build/serializers.py
index 55576fd328..2bb3d7f9df 100644
--- a/InvenTree/build/serializers.py
+++ b/InvenTree/build/serializers.py
@@ -309,7 +309,7 @@ class BuildAllocationItemSerializer(serializers.Serializer):
)
def validate_bom_item(self, bom_item):
-
+
# TODO: Fix this validation - allow for variants and substitutes!
build = self.context['build']
@@ -332,7 +332,7 @@ class BuildAllocationItemSerializer(serializers.Serializer):
if not stock_item.in_stock:
raise ValidationError(_("Item must be in stock"))
-
+
return stock_item
quantity = serializers.DecimalField(
@@ -398,7 +398,7 @@ class BuildAllocationItemSerializer(serializers.Serializer):
# Output *cannot* be set for un-tracked parts
if output is not None and not bom_item.sub_part.trackable:
-
+
raise ValidationError({
'output': _('Build output cannot be specified for allocation of untracked parts')
})
@@ -422,14 +422,14 @@ class BuildAllocationSerializer(serializers.Serializer):
"""
Validation
"""
-
+
data = super().validate(data)
items = data.get('items', [])
if len(items) == 0:
raise ValidationError(_('Allocation items must be provided'))
-
+
return data
def save(self):
diff --git a/InvenTree/build/templates/build/sidebar.html b/InvenTree/build/templates/build/sidebar.html
index c542708cd4..d0652cd3c1 100644
--- a/InvenTree/build/templates/build/sidebar.html
+++ b/InvenTree/build/templates/build/sidebar.html
@@ -2,14 +2,21 @@
{% load static %}
{% load inventree_extras %}
-{% include "sidebar_item.html" with label='details' text="Build Order Details" icon="fa-info-circle" %}
+{% trans "Build Order Details" as text %}
+{% include "sidebar_item.html" with label='details' text=text icon="fa-info-circle" %}
{% if build.active %}
-{% include "sidebar_item.html" with label='allocate' text="Allocate Stock" icon="fa-tasks" %}
+{% trans "Allocate Stock" as text %}
+{% include "sidebar_item.html" with label='allocate' text=text icon="fa-tasks" %}
{% endif %}
{% if not build.is_complete %}
-{% include "sidebar_item.html" with label='outputs' text="Pending Items" icon="fa-tools" %}
+{% trans "Pending Items" as text %}
+{% include "sidebar_item.html" with label='outputs' text=text icon="fa-tools" %}
{% endif %}
-{% include "sidebar_item.html" with label='completed' text="Completed Items" icon="fa-boxes" %}
-{% include "sidebar_item.html" with label='children' text="Child Build Orders" icon="fa-sitemap" %}
-{% include "sidebar_item.html" with label='attachments' text="Attachments" icon="fa-paperclip" %}
-{% include "sidebar_item.html" with label='notes' text="Notes" icon="fa-clipboard" %}
+{% trans "Completed Items" as text %}
+{% include "sidebar_item.html" with label='completed' text=text icon="fa-boxes" %}
+{% trans "Child Build Orders" as text %}
+{% include "sidebar_item.html" with label='children' text=text icon="fa-sitemap" %}
+{% trans "Attachments" as text %}
+{% include "sidebar_item.html" with label='attachments' text=text icon="fa-paperclip" %}
+{% trans "Notes" as text %}
+{% include "sidebar_item.html" with label='notes' text=text icon="fa-clipboard" %}
diff --git a/InvenTree/common/api.py b/InvenTree/common/api.py
index 6dd51bdff1..4ec6bf9441 100644
--- a/InvenTree/common/api.py
+++ b/InvenTree/common/api.py
@@ -73,7 +73,7 @@ class GlobalSettingsDetail(generics.RetrieveUpdateAPIView):
permission_classes = [
GlobalSettingsPermissions,
]
-
+
class UserSettingsList(SettingsList):
"""
@@ -124,7 +124,7 @@ class UserSettingsDetail(generics.RetrieveUpdateAPIView):
queryset = common.models.InvenTreeUserSetting.objects.all()
serializer_class = common.serializers.UserSettingsSerializer
-
+
permission_classes = [
UserSettingsPermissions,
]
diff --git a/InvenTree/common/apps.py b/InvenTree/common/apps.py
index 5f88b3c634..58d05c0391 100644
--- a/InvenTree/common/apps.py
+++ b/InvenTree/common/apps.py
@@ -12,7 +12,7 @@ class CommonConfig(AppConfig):
name = 'common'
def ready(self):
-
+
self.clear_restart_flag()
def clear_restart_flag(self):
@@ -22,7 +22,7 @@ class CommonConfig(AppConfig):
try:
import common.models
-
+
if common.models.InvenTreeSetting.get_setting('SERVER_RESTART_REQUIRED'):
logger.info("Clearing SERVER_RESTART_REQUIRED flag")
common.models.InvenTreeSetting.set_setting('SERVER_RESTART_REQUIRED', False, None)
diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py
index 51b4bfd00d..4028d352a0 100644
--- a/InvenTree/common/models.py
+++ b/InvenTree/common/models.py
@@ -108,7 +108,9 @@ class BaseInvenTreeSetting(models.Model):
for key, value in settings.items():
validator = cls.get_setting_validator(key)
- if cls.validator_is_bool(validator):
+ if cls.is_protected(key):
+ value = '***'
+ elif cls.validator_is_bool(validator):
value = InvenTree.helpers.str2bool(value)
elif cls.validator_is_int(validator):
try:
@@ -485,7 +487,7 @@ class BaseInvenTreeSetting(models.Model):
elif self.is_int():
return 'integer'
-
+
else:
return 'string'
@@ -538,6 +540,19 @@ class BaseInvenTreeSetting(models.Model):
return value
+ @classmethod
+ def is_protected(cls, key):
+ """
+ Check if the setting value is protected
+ """
+
+ key = str(key).strip().upper()
+
+ if key in cls.GLOBAL_SETTINGS:
+ return cls.GLOBAL_SETTINGS[key].get('protected', False)
+ else:
+ return False
+
def settings_group_options():
"""build up group tuple for settings based on gour choices"""
diff --git a/InvenTree/common/serializers.py b/InvenTree/common/serializers.py
index 4a27e3f30e..60eb609dc1 100644
--- a/InvenTree/common/serializers.py
+++ b/InvenTree/common/serializers.py
@@ -45,6 +45,18 @@ class SettingsSerializer(InvenTreeModelSerializer):
return results
+ def get_value(self, obj):
+ """
+ Make sure protected values are not returned
+ """
+ result = obj.value
+
+ # never return protected values
+ if obj.is_protected:
+ result = '***'
+
+ return result
+
class GlobalSettingsSerializer(SettingsSerializer):
"""
diff --git a/InvenTree/company/api.py b/InvenTree/company/api.py
index 6c51d97d66..83d24e0858 100644
--- a/InvenTree/company/api.py
+++ b/InvenTree/company/api.py
@@ -170,7 +170,7 @@ class ManufacturerPartParameterList(generics.ListCreateAPIView):
queryset = ManufacturerPartParameter.objects.all()
serializer_class = ManufacturerPartParameterSerializer
-
+
def get_serializer(self, *args, **kwargs):
# Do we wish to include any extra detail?
diff --git a/InvenTree/company/models.py b/InvenTree/company/models.py
index ebe61a74b0..ef3c8aad2e 100644
--- a/InvenTree/company/models.py
+++ b/InvenTree/company/models.py
@@ -477,7 +477,7 @@ class SupplierPart(models.Model):
return reverse('supplier-part-detail', kwargs={'pk': self.id})
def api_instance_filters(self):
-
+
return {
'manufacturer_part': {
'part': self.part.pk
diff --git a/InvenTree/company/serializers.py b/InvenTree/company/serializers.py
index a6303cc561..6efebce6a0 100644
--- a/InvenTree/company/serializers.py
+++ b/InvenTree/company/serializers.py
@@ -187,7 +187,7 @@ class SupplierPartSerializer(InvenTreeModelSerializer):
part_detail = kwargs.pop('part_detail', True)
supplier_detail = kwargs.pop('supplier_detail', True)
manufacturer_detail = kwargs.pop('manufacturer_detail', True)
-
+
prettify = kwargs.pop('pretty', False)
super(SupplierPartSerializer, self).__init__(*args, **kwargs)
diff --git a/InvenTree/company/templates/company/manufacturer_part_sidebar.html b/InvenTree/company/templates/company/manufacturer_part_sidebar.html
index c75bacf210..bd613f76aa 100644
--- a/InvenTree/company/templates/company/manufacturer_part_sidebar.html
+++ b/InvenTree/company/templates/company/manufacturer_part_sidebar.html
@@ -2,5 +2,7 @@
{% load static %}
{% load inventree_extras %}
-{% include "sidebar_item.html" with label='parameters' text="Parameters" icon="fa-th-list" %}
-{% include "sidebar_item.html" with label='supplier-parts' text="Supplier Parts" icon="fa-building" %}
\ No newline at end of file
+{% trans "Parameters" as text %}
+{% include "sidebar_item.html" with label='parameters' text=text icon="fa-th-list" %}
+{% trans "Supplier Parts" as text %}
+{% include "sidebar_item.html" with label='supplier-parts' text=text icon="fa-building" %}
\ No newline at end of file
diff --git a/InvenTree/company/templates/company/sidebar.html b/InvenTree/company/templates/company/sidebar.html
index 5481aa013a..0063853732 100644
--- a/InvenTree/company/templates/company/sidebar.html
+++ b/InvenTree/company/templates/company/sidebar.html
@@ -3,17 +3,24 @@
{% load inventree_extras %}
{% if company.is_manufacturer %}
-{% include "sidebar_item.html" with label='manufacturer-parts' text="Manufactured Parts" icon="fa-industry" %}
+{% trans "Manufactured Parts" as text %}
+{% include "sidebar_item.html" with label='manufacturer-parts' text=text icon="fa-industry" %}
{% endif %}
{% if company.is_supplier %}
-{% include "sidebar_item.html" with label='supplier-parts' text="Supplied Parts" icon="fa-building" %}
-{% include "sidebar_item.html" with label='purchase-orders' text="Purchase Orders" icon="fa-shopping-cart" %}
+{% trans "Supplied Parts" as text %}
+{% include "sidebar_item.html" with label='supplier-parts' text=text icon="fa-building" %}
+{% trans "Purchase Orders" as text %}
+{% include "sidebar_item.html" with label='purchase-orders' text=text icon="fa-shopping-cart" %}
{% endif %}
{% if company.is_manufacturer or company.is_supplier %}
-{% include "sidebar_item.html" with label='company-stock' text="Supplied Stock Items" icon="fa-boxes" %}
+{% trans "Supplied Stock Items" as text %}
+{% include "sidebar_item.html" with label='company-stock' text=text icon="fa-boxes" %}
{% endif %}
{% if company.is_customer %}
-{% include "sidebar_item.html" with label='sales-orders' text="Sales Orders" icon="fa-truck" %}
-{% include "sidebar_item.html" with label='assigned-stock' text="Assigned Stock Items" icon="fa-sign-out-alt" %}
+{% trans "Sales Orders" as text %}
+{% include "sidebar_item.html" with label='sales-orders' text=text icon="fa-truck" %}
+{% trans "Assigned Stock Items" as text %}
+{% include "sidebar_item.html" with label='assigned-stock' text=text icon="fa-sign-out-alt" %}
{% endif %}
-{% include "sidebar_item.html" with label='company-notes' text="Notes" icon="fa-clipboard" %}
+{% trans "Notes" as text %}
+{% include "sidebar_item.html" with label='company-notes' text=text icon="fa-clipboard" %}
diff --git a/InvenTree/company/templates/company/supplier_part_sidebar.html b/InvenTree/company/templates/company/supplier_part_sidebar.html
index 53c4488816..91c0682e00 100644
--- a/InvenTree/company/templates/company/supplier_part_sidebar.html
+++ b/InvenTree/company/templates/company/supplier_part_sidebar.html
@@ -2,6 +2,9 @@
{% load static %}
{% load inventree_extras %}
-{% include "sidebar_item.html" with label='stock' text="Stock Items" icon="fa-boxes" %}
-{% include "sidebar_item.html" with label='purchase-orders' text="Purchase Orders" icon="fa-shopping-cart" %}
-{% include "sidebar_item.html" with label='pricing' text="Supplier Part Pricing" icon="fa-dollar-sign" %}
+{% trans "Stock Items" as text %}
+{% include "sidebar_item.html" with label='stock' text=text icon="fa-boxes" %}
+{% trans "Purchase Orders" as text %}
+{% include "sidebar_item.html" with label='purchase-orders' text=text icon="fa-shopping-cart" %}
+{% trans "Supplier Part Pricing" as text %}
+{% include "sidebar_item.html" with label='pricing' text=text icon="fa-dollar-sign" %}
diff --git a/InvenTree/company/test_api.py b/InvenTree/company/test_api.py
index a915ad1bf5..a1272103df 100644
--- a/InvenTree/company/test_api.py
+++ b/InvenTree/company/test_api.py
@@ -202,7 +202,7 @@ class ManufacturerTest(InvenTreeAPITestCase):
data = {
'MPN': 'MPN-TEST-123',
}
-
+
response = self.client.patch(url, data, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
diff --git a/InvenTree/company/urls.py b/InvenTree/company/urls.py
index 609311bcba..377a37706d 100644
--- a/InvenTree/company/urls.py
+++ b/InvenTree/company/urls.py
@@ -29,7 +29,7 @@ company_urls = [
]
manufacturer_part_urls = [
-
+
url(r'^(?P\d+)/', views.ManufacturerPartDetail.as_view(template_name='company/manufacturer_part.html'), name='manufacturer-part-detail'),
]
diff --git a/InvenTree/label/api.py b/InvenTree/label/api.py
index 2ee8445d2e..475d4f8fea 100644
--- a/InvenTree/label/api.py
+++ b/InvenTree/label/api.py
@@ -399,7 +399,7 @@ class PartLabelMixin:
if key in params:
parts = params.getlist(key, [])
break
-
+
valid_ids = []
for part in parts:
diff --git a/InvenTree/label/models.py b/InvenTree/label/models.py
index dea740f2b1..cf30af2ae0 100644
--- a/InvenTree/label/models.py
+++ b/InvenTree/label/models.py
@@ -186,7 +186,7 @@ class LabelTemplate(models.Model):
"""
template_string = Template(self.filename_pattern)
-
+
ctx = self.context(request)
context = Context(ctx)
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.mo b/InvenTree/locale/de/LC_MESSAGES/django.mo
index e90eab101b..de1e091409 100644
Binary files a/InvenTree/locale/de/LC_MESSAGES/django.mo and b/InvenTree/locale/de/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/de/LC_MESSAGES/django.po b/InvenTree/locale/de/LC_MESSAGES/django.po
index 549ecdddf9..3259a2f959 100644
--- a/InvenTree/locale/de/LC_MESSAGES/django.po
+++ b/InvenTree/locale/de/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: German\n"
"Language: de_DE\n"
@@ -33,260 +33,268 @@ msgstr "Keine passende Aktion gefunden"
msgid "Enter date"
msgstr "Datum eingeben"
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr "Bestätigen"
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr "Löschung bestätigen"
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr "Löschung von Position bestätigen"
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr "Passwort eingeben"
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr "Neues Passwort eingeben"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr "Passwort wiederholen"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr "Neues Passwort bestätigen"
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr "Kategorie auswählen"
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
-msgstr ""
+msgid "Email (again)"
+msgstr "E-Mail (nochmal)"
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr "Bestätigung der E-Mail Adresse"
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
-msgstr ""
+msgstr "E-Mail Adressen müssen übereinstimmen."
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Doppelte Seriennummer: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr "Keine gültige Menge"
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr "Keine Seriennummer angegeben"
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ungültige Gruppe: {g}"
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Doppelte Seriennummer: {g}"
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr "Keine Seriennummern gefunden"
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Anzahl der eindeutigen Seriennummern ({s}) muss mit der Anzahl ({q}) übereinstimmen"
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr "Anhang"
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr "Datei zum Anhängen auswählen"
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr "Datei-Kommentar"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr "Benutzer"
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr "Hochladedatum"
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr "Dateiname darf nicht leer sein"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr "Ungültiges Verzeichnis für Anhang"
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Dateiname enthält ungültiges Zeichen '{c}'"
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr "Dateiendung fehlt"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr "Anhang mit diesem Dateinamen bereits vorhanden"
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr "Fehler beim Umbenennen"
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr "Ungültige Auswahl"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr "Name"
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr "Beschreibung"
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr "Beschreibung (optional)"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr "Eltern"
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr "Muss eine gültige Nummer sein"
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr "Dateiname"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr "Deutsch"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr "Griechisch"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr "Englisch"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr "Spanisch"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr "Spanisch (Mexikanisch)"
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr "Französisch"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr "Hebräisch"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr "Italienisch"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr "Japanisch"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr "Koreanisch"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr "Niederländisch"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr "Norwegisch"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr "Polnisch"
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr "Portugiesisch"
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr "Schwedisch"
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr "Thailändisch"
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr "Türkisch"
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr "Vietnamesisch"
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr "Chinesisch"
@@ -302,196 +310,196 @@ msgstr "E-Mail-Backend nicht konfiguriert"
msgid "InvenTree system health checks failed"
msgstr "InvenTree Status-Überprüfung fehlgeschlagen"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr "Ausstehend"
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr "Platziert"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr "Fertig"
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr "Storniert"
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr "Verloren"
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr "Zurückgegeben"
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr "Versendet"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr "erfordert Eingriff"
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr "Beschädigt"
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr "Zerstört"
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr "Zurückgewiesen"
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
-msgstr "Alter Lagerbestands-Tracking-Eintrag"
+msgstr "Alter Bestand-Verfolgungs-Eintrag"
+
+#: InvenTree/status_codes.py:271
+msgid "Stock item created"
+msgstr "Lagerartikel erstellt"
+
+#: InvenTree/status_codes.py:273
+msgid "Edited stock item"
+msgstr "Lagerartikel bearbeitet"
#: InvenTree/status_codes.py:274
-msgid "Stock item created"
-msgstr "Lagerbestand erstellt"
-
-#: InvenTree/status_codes.py:276
-msgid "Edited stock item"
-msgstr "Lagerbestand bearbeitet"
-
-#: InvenTree/status_codes.py:277
msgid "Assigned serial number"
msgstr "Seriennummer hinzugefügt"
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
-msgstr "Lagerbestand gezählt"
+msgstr "Bestand gezählt"
+
+#: InvenTree/status_codes.py:277
+msgid "Stock manually added"
+msgstr "Bestand manuell hinzugefügt"
+
+#: InvenTree/status_codes.py:278
+msgid "Stock manually removed"
+msgstr "Bestand manuell entfernt"
#: InvenTree/status_codes.py:280
-msgid "Stock manually added"
-msgstr "Lagerbestand manuell hinzugefügt"
-
-#: InvenTree/status_codes.py:281
-msgid "Stock manually removed"
-msgstr "Lagerbestand manuell entfernt"
-
-#: InvenTree/status_codes.py:283
msgid "Location changed"
msgstr "Standort geändert"
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr "In Baugruppe installiert"
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr "Aus Baugruppe entfernt"
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr "Komponente installiert"
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr "Komponente entfernt"
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr "Vom übergeordneten Element geteilt"
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr "Unterobjekt geteilt"
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr "Zum Kunden geschickt"
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr "Rücksendung vom Kunden"
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr "Endprodukt erstellt"
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr "Endprodukt fertiggestellt"
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr "Gegen Bestellung empfangen"
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr "in Arbeit"
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr "Kein gültiger Währungscode"
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr "Ungültiger Buchstabe im Teilenamen"
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN muss zu Regex-Muster {pat} passen"
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "Referenz muss zu Regex-Muster {pattern} passen"
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Ungültiges Zeichen im Namen ({x})"
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr "Überschuss-Wert darf nicht negativ sein"
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr "Überschuss darf 100% nicht überschreiten"
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr "Überschuss muss eine Ganzzahl oder ein Prozentwert sein"
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr "Element löschen"
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr "Häkchen setzen um Löschung von Objekt zu bestätigen"
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr "Benutzerinformationen bearbeiten"
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr "Passwort eingeben"
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr "Passwörter stimmen nicht überein"
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr "Systeminformationen"
@@ -509,15 +517,15 @@ msgstr "Treffer für Barcode gefunden"
#: barcodes/api.py:153
msgid "Must provide stockitem parameter"
-msgstr "BestandsObjekt-Parameter muss angegeben werden"
+msgstr "Lagerartikel-Parameter muss angegeben werden"
#: barcodes/api.py:160
msgid "No matching stock item found"
-msgstr "Keine passende BestandsObjekt gefunden"
+msgstr "Keine passende Lagerartikel gefunden"
#: barcodes/api.py:190
msgid "Barcode already matches StockItem object"
-msgstr "Barcode entspricht bereits BestandsObjekt"
+msgstr "Barcode entspricht bereits einem Lagerartikel"
#: barcodes/api.py:194
msgid "Barcode already matches StockLocation object"
@@ -529,605 +537,580 @@ msgstr "Barcode entspricht bereits Teil"
#: barcodes/api.py:204 barcodes/api.py:216
msgid "Barcode hash already matches StockItem object"
-msgstr "Barcode ist bereits BestandsObjekt zugeordnet"
+msgstr "Barcode ist bereits Lagerartikel zugeordnet"
#: barcodes/api.py:222
msgid "Barcode associated with StockItem"
-msgstr "Barcode zugeordnet zu BestandsObjekt"
+msgstr "Barcode Lagerartikel zugeordnet"
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr "Es existiert kein passender Build-Auftrag"
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr "Bauauftrags-Referenz"
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr "geplantes Bestelldatum"
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr "Zieldatum"
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr "Zieldatum für Bauauftrag-Fertigstellung."
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr "Anzahl"
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr "Anzahl der zu bauenden Teile"
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr "Menge der Endprodukte angeben"
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr "Seriennummer"
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr "Seriennummer für dieses Endprodukt eingeben"
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr "Anlage von Endprodukt(en) bestätigen"
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr "Löschen des Endprodukt bestätigen"
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr "Aufhebung der BestandsZuordnung bestätigen"
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr "Bauauftrag als vollständig markieren"
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr "Lagerort"
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr "Lagerort der Endprodukte"
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr "Status"
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr "Bestands-Status der Endprodukte"
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr "Bauauftrag nicht fertiggestellt"
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr "Fertigstellung mit nicht kompletter Bestandszuordnung bestätigen"
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr "Bauauftrag-Fertigstellung bestätigen"
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr "Abbruch bestätigen"
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Bauabbruch bestätigen"
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr "Ungültige Wahl für übergeordneten Bauauftrag"
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr "Bauauftrag"
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr "Bauaufträge"
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr "Bauauftragsreferenz"
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr "Referenz"
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr "Kurze Beschreibung des Baus"
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Eltern-Bauauftrag"
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr "Bauauftrag, zu dem dieser Bauauftrag zugwiesen ist"
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr "Teil"
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr "Teil für den Bauauftrag wählen"
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr "Auftrag Referenz"
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr "Bestellung, die diesem Bauauftrag zugewiesen ist"
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr "Quell-Lagerort"
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Entnahme-Lagerort für diesen Bauauftrag wählen (oder leer lassen für einen beliebigen Lagerort)"
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr "Ziel-Lagerort"
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr "Lagerort an dem fertige Objekte gelagert werden auswählen"
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr "Bau-Anzahl"
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
-msgstr "Anzahl der zu bauenden BestandsObjekt"
+msgstr "Anzahl der zu bauenden Lagerartikel"
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr "Fertiggestellte Teile"
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
-msgstr "Anzahl der fertigen BestandsObjekte"
+msgstr "Anzahl der fertigen Lagerartikel"
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr "Bauauftrags-Status"
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr "Bau-Statuscode"
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr "Losnummer"
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr "Losnummer für dieses Endprodukt"
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr "Erstelldatum"
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr "geplantes Fertigstellungsdatum"
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr "Zieldatum für Bauauftrag-Fertigstellung."
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr "Fertigstellungsdatum"
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr "Fertiggestellt von"
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr "Aufgegeben von"
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr "Nutzer der diesen Bauauftrag erstellt hat"
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr "Verantwortlicher Benutzer"
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr "Nutzer der für diesen Bauauftrag zuständig ist"
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr "Externer Link"
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr "Link zu einer externen URL"
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr "Notizen"
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr "Extranotizen für den Bauauftrag"
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr "kein Endprodukt angegeben"
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr "Endprodukt bereits hergstellt"
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr "Endprodukt stimmt nicht mit dem Bauauftrag überein"
-#: build/models.py:1102
+#: build/models.py:1108
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:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
-msgstr ""
+msgstr "Zugewiesene Menge ({q}) darf nicht verfügbare Menge ({a}) übersteigen"
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr "BestandObjekt ist zu oft zugewiesen"
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr "Reserviermenge muss größer null sein"
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr "Anzahl muss 1 für Objekte mit Seriennummer sein"
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
-msgstr ""
+msgstr "Ausgewähltes Bestands-Objekt nicht in Stückliste für Teil '{p}' gefunden"
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr "Bauauftrag"
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr "Bauauftrag starten um Teile zuzuweisen"
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
-msgstr "BestandsObjekt"
+msgstr "Lagerartikel"
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
-msgstr "Quell-BestandsObjekt"
+msgstr "Quell-Lagerartikel"
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
-msgstr "BestandsObjekt-Anzahl dem Bauauftrag zuweisen"
+msgstr "Anzahl an Lagerartikel dem Bauauftrag zuweisen"
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr "Installiere in"
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
-msgstr "Ziel-BestandsObjekt"
+msgstr "Ziel-Lagerartikel"
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr "Stücklisten-Position"
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr "Teil muss auf Lager sein"
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr "Anzahl muss größer Null sein"
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr "Endprodukt"
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr "Lagerort"
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr "Status"
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr "Stücklisten-Position"
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr "Endprodukt"
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr "Teil muss auf Lager sein"
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr "Anzahl muss größer Null sein"
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr "Verfügbare Menge ({q}) überschritten"
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
-msgstr "Seriennummer"
+#: build/tasks.py:92
+msgid "Stock required for build order"
+msgstr "Bestand für Bauauftrag erforderlich"
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr "Aktionen drucken"
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr "Bauauftragsbericht drucken"
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr "Bau-Auftrag Aktionen"
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr "Bauauftrag bearbeiten"
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr "Bauauftrag abbrechen"
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr "Bauauftrag löschen"
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr "Bauauftrag fertigstellen"
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr "Dieser Bauauftrag ist dem Auftrag %(link)s zugeordnet"
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr "Dieser Bauauftrag ist dem Bauauftrag %(link)s untergeordnet"
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr "Bauauftrag ist bereit abgeschlossen zu werden"
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr "Bauauftrag kann nicht abgeschlossen werden, da es noch ausstehende Endprodukte gibt"
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt"
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
-msgstr "Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen"
+msgstr "Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
-msgstr "Admin"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
+msgstr "Zieldatum"
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr "Überfällig"
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr "Aktionen drucken"
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr "Bauauftrag drucken"
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr "Bauauftrag fertigstellen"
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr "Bau-Auftrag Aktionen"
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr "Bauauftrag bearbeiten"
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr "Bauauftrag abbrechen"
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr "Bauauftrag löschen"
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr "Bau-Status"
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr "Bauauftrag war fällig am %(target)s"
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
-msgstr "Fortschritt"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
+msgstr "Überfällig"
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr "Fertig"
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr "Auftrag"
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr "Aufgegeben von"
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr "Unfertige Endprodukte"
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr "Bauauftrag kann nicht abgeschlossen werden, da es noch unvollständige Endprodukte gibt"
@@ -1175,220 +1158,203 @@ msgstr "Benötigte Teil-Anzahl wurde noch nicht fertiggestellt"
msgid "Required stock has not been fully allocated"
msgstr "Benötigter Bestand wurde nicht vollständig zugewiesen"
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
-msgstr "Lagerzuordnung für dieses Endprodukt ist vollständig"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
+msgstr "Bau-Status"
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr "Bestandszuordnung ist nicht vollständig"
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr "verfolgte Teile wurden nicht vollständig zugewiesen"
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr "Die folgenden Objekte werden erstellt"
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr "Ausgangs-Lager"
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr "Bestand kann jedem verfügbaren Lagerort entnommen werden."
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr "Ziel-Lager"
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr "Ziel-Lagerort nicht angegeben"
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr "Zugewiesene Teile"
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr "Losnummer"
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr "Erstellt"
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr "Kein Ziel-Datum gesetzt"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr "Fertig"
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr "Bauauftrag ist nicht vollständig"
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr "Unter-Bauaufträge"
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
-msgstr "Lagerbestand Bauauftrag zuweisen"
+msgstr "Bestand Bauauftrag zuweisen"
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr "Lagerbestand Bauauftrag zuweisen"
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr "Lagerbestand zuweisen"
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr "Bestandszuordnung aufheben"
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr "Bestandszuordnung aufheben"
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr "Bestand Bauauftrag zuweisen"
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr "Bestand zuweisen"
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr "Benötigte Teile bestellen"
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr "Teile bestellen"
-#: build/templates/build/detail.html:186
-msgid "Untracked stock has been fully allocated for this Build Order"
-msgstr "Nicht verfolgter Lagerbestand wurde Bauauftrag vollständig zugewiesen"
-
-#: build/templates/build/detail.html:190
-msgid "Untracked stock has not been fully allocated for this Build Order"
-msgstr "Nicht verfolgter Lagerbestand wurde Bauauftrag noch nicht vollständig zugewiesen"
-
#: build/templates/build/detail.html:197
-msgid "Allocate selected items"
-msgstr ""
+msgid "Untracked stock has been fully allocated for this Build Order"
+msgstr "Nicht verfolgter Bestand wurde Bauauftrag vollständig zugewiesen"
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:201
+msgid "Untracked stock has not been fully allocated for this Build Order"
+msgstr "Nicht verfolgter Bestand wurde Bauauftrag noch nicht vollständig zugewiesen"
+
+#: build/templates/build/detail.html:208
+msgid "Allocate selected items"
+msgstr "Ausgewählte Positionen zuweisen"
+
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr "Dieser Bauauftrag hat keine zugeordneten Stücklisten-Einträge"
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr "Unfertige Endprodukte"
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr "Neues Endprodukt anlegen"
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
-msgstr "Neues Endprodukt anlegen"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
+msgstr "Neues Endprodukt"
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
-msgstr "Neues Endprodukt anlegen"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
+msgstr "Endproduktaktionen"
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
-msgstr "Keine unfertigen Endprodukte verbleibend."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
+msgstr "Ausgewählte Positionen abschließen"
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
-msgstr "Neues Endprodukt mit der Schaltfläche oberhalb anlegen"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
+msgstr "Endprodukte fertigstellen"
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr "Fertiggestellte Endprodukte"
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr "Anhänge"
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr "Bauauftrags-Notizen"
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr "Anmerkungen bearbeiten"
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr "Anhang hinzufügen"
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr "Anhang bearbeiten"
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr "Löschvorgang bestätigen"
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr "Anhang löschen"
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr "Zuordnung abgeschlossen"
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
-msgstr ""
+msgstr "Alle nicht verfolgten Lagerartikel wurden zugewiesen"
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr "Anzahl des zugeordneten Bestands für die Endprodukte ändern"
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr "Neuer Bauauftrag"
@@ -1396,46 +1362,29 @@ msgstr "Neuer Bauauftrag"
msgid "Print Build Orders"
msgstr "Bauaufträge ausdrucken"
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr "Kalender-Ansicht"
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr "Listen-Ansicht"
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
-msgstr "Bauauftrag-details"
+msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
-msgstr "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr "Endprodukte"
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr "Unter-Endprodukte"
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr "Bauauftrag-Notizen"
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr "Sind Sie sicher, dass sie alle BestandsObjekt von diesem Bauauftrag entfernen möchten?"
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
-msgstr "Alle unvollständigen Bestandszuordnungen werden vom Endprodukt entfernt"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
#: build/views.py:76
msgid "Build was cancelled"
@@ -1449,7 +1398,7 @@ msgstr "Endprodukt anlegen"
msgid "Maximum output quantity is "
msgstr "Maximale Endproduktmenge ist "
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr "Seriennummern existieren bereits"
@@ -1461,11 +1410,11 @@ msgstr "Seriennummern für verfolgbare Endprodukte benötigt"
msgid "Delete Build Output"
msgstr "Endprodukt entfernen"
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr "Entfernung von Bestands-Zuordnung bestätigen"
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr "Bestätigungsbox bestätigen"
@@ -1473,7 +1422,7 @@ msgstr "Bestätigungsbox bestätigen"
msgid "Build output does not match build"
msgstr "Endprodukt stimmt nicht mit Bauauftrag überein"
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr "Endprodukt muss angegeben sein"
@@ -1481,39 +1430,19 @@ msgstr "Endprodukt muss angegeben sein"
msgid "Build output deleted"
msgstr "Endprodukt gelöscht"
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr "Bauauftrag fertigstellen"
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr "Bauauftrag kann nicht abgeschlossen werden, es gibt noch unvollständige Endprodukte"
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr "Bauauftrag fertiggestellt"
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr "Endprodukt fertigstellen"
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr "Ungültiger Lagerbestands-Status ausgewählt"
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr "Fertigzustellende Anzahl darf nicht die geplante Endprodukt-Anzahl überschreiten"
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr "Endprodukt-Fertigstellung bestätigen"
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr "Endprodukt fertiggestellt"
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr "Bauauftrag löschen"
@@ -1554,725 +1483,727 @@ msgstr "{name.title()} Datei"
msgid "Select {name} file to upload"
msgstr "{name} Datei zum Hochladen auswählen"
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr "Einstellungs-Schlüssel (muss einzigartig sein, Groß-/ Kleinschreibung wird nicht beachtet)"
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr "Einstellungs-Wert"
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr "Nur Ganzzahl eingeben"
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr "Wert ist keine gültige Option"
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr "Wahrheitswert erforderlich"
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr "Nur Ganzzahl eingeben"
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr "Schlüsseltext muss eindeutig sein"
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr "Keine Gruppe"
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr "Neustart erforderlich"
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr "Eine Einstellung wurde geändert, die einen Neustart des Servers erfordert"
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr "InvenTree Instanzname"
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr "Kurze Beschreibung der Instanz"
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr "Name der Instanz verwenden"
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr "Den Namen der Instanz in der Titelleiste verwenden"
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Firmenname"
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr "interner Firmenname"
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr "Basis-URL"
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr "Basis-URL für dieses Instanz"
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr "Standardwährung"
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr "Standardwährung"
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr "Von URL herunterladen"
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr "Herunterladen von externen Bildern und Dateien von URLs erlaubt"
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr "Bacode-Feature verwenden"
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr "Barcode-Scanner Unterstützung"
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr "IPN Regex"
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr "RegEx Muster für die Zuordnung von Teil-IPN"
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr "Mehrere Artikel mit gleicher IPN erlaubt"
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr "Ändern von IPN erlaubt"
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr "Ändern der IPN während des Bearbeiten eines Teils erlaubt"
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr "Teil-Stückliste kopieren"
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr "Stückliste von Teil kopieren wenn das Teil dupliziert wird "
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr "Teil-Parameter kopieren"
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr "Parameter-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr "Teil-Testdaten kopieren"
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr "Test-Daten für dieses Teil kopieren wenn das Teil dupliziert wird"
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr "Kategorie-Parametervorlage kopieren"
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr "Kategorie-Parameter Vorlagen kopieren wenn ein Teil angelegt wird"
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr "Vorlage"
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr "Teile sind standardmäßig Vorlagen"
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr "Baugruppe"
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr "Teile können standardmäßig aus anderen Teilen angefertigt werden"
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr "Komponente"
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr "Teile können standardmäßig in Baugruppen benutzt werden"
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr "Kaufbar"
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr "Artikel sind grundsätzlich kaufbar"
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr "Verkäuflich"
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr "Artikel sind grundsätzlich verkaufbar"
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr "Nachverfolgbar"
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr "Artikel sind grundsätzlich verfolgbar"
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Virtuell"
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr "Teile sind grundsätzlich virtuell"
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr "Import in Ansichten anzeigen"
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr "Importassistent in einigen Teil-Ansichten anzeigen"
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr "Preis in Formularen anzeigen"
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr "Teilpreis in einigen Formularen anzeigen"
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
-msgstr ""
+msgstr "Preis in Stückliste anzeigen"
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
-msgstr ""
+msgstr "Preisinformationen in Stücklisten Tabellen einbeziehen"
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr "Verwandte Teile anzeigen"
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr "Verwandte Teile eines Teils anzeigen"
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr "Ausgangsbestand erstellen"
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr "Ausgangsbestand beim Erstellen von Teilen erstellen"
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr "Interne Preise"
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr "Interne Preise für Teile aktivieren"
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr "Interner Preis als Stückliste-Preis"
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr "Interner Preis (falls vorhanden) in Stücklisten-Preisberechnungen verwenden"
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr "Anzeigeformat für Teilenamen"
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr "Format für den Namen eines Teiles"
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr "Berichte aktivieren"
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr "Berichterstellung aktivieren"
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr "Entwickler-Modus"
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr "Berichte im Entwickler-Modus generieren (als HTML)"
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr "Seitengröße"
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr "Standardseitenformat für PDF-Bericht"
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr "Test-Berichte"
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr "Erstellung von Test-Berichten aktivieren"
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr "Bestands-Ablauf"
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr "Ablaufen von Bestand ermöglichen"
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr "Abgelaufenen Bestand verkaufen"
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr "Verkauf von abgelaufenem Bestand erlaubt"
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr "Bestands-Stehzeit"
-#: common/models.py:746
+#: common/models.py:861
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:748
+#: common/models.py:863
msgid "days"
msgstr "Tage"
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr "Abgelaufenen Bestand verbauen"
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr "Verbauen von abgelaufenen Bestand erlaubt"
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr "Bestands-Eigentümerkontrolle"
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr "Eigentümerkontrolle für Lagerorte und Teile aktivieren"
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr "Gruppieren nach Teil"
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr "Bestand in Tabellen anhand von Teil-Referenz gruppieren"
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr "Bauauftrag-Referenz Präfix"
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr "Präfix für Bauauftrag-Referenz"
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr "Bauauftrag-Referenz RegEx"
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr "RegEx Muster für die Zuordnung von Bauauftrag-Referenzen"
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr "Auftrags-Referenz Präfix"
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr "Präfix für Auftrags-Referenz"
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr "Bestellungs-Referenz Präfix"
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr "Präfix für Bestellungs-Referenz"
-#: common/models.py:798
-msgid "Enable build"
-msgstr "Bauaufträge aktivieren"
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr "Bau-Funktionalität in InvenTree aktivieren"
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr "Kaufen aktivieren"
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr "Kauf-Funktionalität in InvenTree aktivieren"
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr "Verkauf aktivieren"
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr "Verkaufs-Funktionalität in InvenTree aktivieren"
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr "Lagerbestand aktivieren"
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr "Aufträge aktivieren"
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr "Bestellungen aktivieren"
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
-msgstr ""
+msgstr "Passwort vergessen aktivieren"
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
-msgstr ""
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
+msgstr "Passwort-vergessen-Funktion auf den Anmeldeseiten aktivieren"
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
-msgstr ""
+msgstr "Anmeldung erlauben"
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
-msgstr ""
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
+msgstr "Selbstregistrierung für Benutzer auf den Anmeldeseiten aktivieren"
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
-msgstr ""
+msgstr "SSO aktivieren"
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
-msgstr ""
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
+msgstr "SSO auf den Anmeldeseiten aktivieren"
-#: common/models.py:854
-msgid "E-Mail required"
-msgstr ""
+#: common/models.py:931
+msgid "Email required"
+msgstr "Email-Adresse erforderlich"
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
-msgstr ""
+msgstr "Benutzer müssen bei der Registrierung eine E-Mail angeben"
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
-msgstr ""
+msgstr "SSO-Benutzer automatisch ausfüllen"
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
-msgstr ""
+msgstr "Benutzer-Details automatisch aus SSO-Konto ausfüllen"
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
-msgstr ""
+msgstr "E-Mail zweimal"
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
-msgstr ""
+msgstr "Bei der Registrierung den Benutzer zweimal nach der E-Mail-Adresse fragen"
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
-msgstr ""
+msgstr "Passwort zweimal"
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
-msgstr ""
+msgstr "Bei der Registrierung den Benutzer zweimal nach dem Passwort fragen"
-#: common/models.py:898
-msgid "Show starred parts"
-msgstr "Markierte Teile anzeigen"
+#: common/models.py:955
+msgid "Group on signup"
+msgstr "Gruppe bei Registrierung"
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
-msgstr "Zeige markierte Teile auf der Startseite"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
+msgstr "Gruppe der neue Benutzer bei der Registrierung zugewiesen werden"
-#: common/models.py:904
+#: common/models.py:1001
+msgid "Show subscribed parts"
+msgstr "Abonnierte Teile anzeigen"
+
+#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr "Abonnierte Teile auf der Startseite anzeigen"
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr "Abonnierte Kategorien anzeigen"
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr "Abonnierte Teilkategorien auf der Startseite anzeigen"
+
+#: common/models.py:1013
msgid "Show latest parts"
msgstr "Neueste Teile anzeigen"
-#: common/models.py:905
+#: common/models.py:1014
msgid "Show latest parts on the homepage"
msgstr "Zeige neueste Teile auf der Startseite"
-#: common/models.py:910
+#: common/models.py:1019
msgid "Recent Part Count"
msgstr "Aktuelle Teile-Stände"
-#: common/models.py:911
+#: common/models.py:1020
msgid "Number of recent parts to display on index page"
msgstr "Anzahl der neusten Teile auf der Startseite"
-#: common/models.py:917
+#: common/models.py:1026
msgid "Show unvalidated BOMs"
msgstr "Nicht validierte Stücklisten anzeigen"
-#: common/models.py:918
+#: common/models.py:1027
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:923
+#: common/models.py:1032
msgid "Show recent stock changes"
-msgstr "Neueste Lagerbestand Änderungen anzeigen"
+msgstr "Neueste Bestandänderungen anzeigen"
-#: common/models.py:924
+#: common/models.py:1033
msgid "Show recently changed stock items on the homepage"
msgstr "Zeige zuletzt geänderte Lagerbestände auf der Startseite"
-#: common/models.py:929
+#: common/models.py:1038
msgid "Recent Stock Count"
msgstr "aktueller Bestand"
-#: common/models.py:930
+#: common/models.py:1039
msgid "Number of recent stock items to display on index page"
msgstr "Anzahl des geänderten Bestands auf der Startseite"
-#: common/models.py:935
+#: common/models.py:1044
msgid "Show low stock"
msgstr "Niedrigen Bestand anzeigen"
-#: common/models.py:936
+#: common/models.py:1045
msgid "Show low stock items on the homepage"
-msgstr "Zeige geringen Lagerbestand auf der Startseite"
+msgstr "Zeige geringen Bestand auf der Startseite"
-#: common/models.py:941
+#: common/models.py:1050
msgid "Show depleted stock"
msgstr "Lerren Bestand anzeigen"
-#: common/models.py:942
+#: common/models.py:1051
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:947
+#: common/models.py:1056
msgid "Show needed stock"
msgstr "Benötigten Bestand anzeigen"
-#: common/models.py:948
+#: common/models.py:1057
msgid "Show stock items needed for builds on the homepage"
msgstr "Zeige Bestand für Bauaufträge auf der Startseite"
-#: common/models.py:953
+#: common/models.py:1062
msgid "Show expired stock"
msgstr "Abgelaufenen Bestand anzeigen"
-#: common/models.py:954
+#: common/models.py:1063
msgid "Show expired stock items on the homepage"
msgstr "Zeige Abgelaufene Lagerbestände auf der Startseite"
-#: common/models.py:959
+#: common/models.py:1068
msgid "Show stale stock"
msgstr "Alten Bestand anzeigen"
-#: common/models.py:960
+#: common/models.py:1069
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:965
+#: common/models.py:1074
msgid "Show pending builds"
msgstr "Ausstehende Bauaufträge anzeigen"
-#: common/models.py:966
+#: common/models.py:1075
msgid "Show pending builds on the homepage"
msgstr "Zeige ausstehende Bauaufträge auf der Startseite"
-#: common/models.py:971
+#: common/models.py:1080
msgid "Show overdue builds"
msgstr "Zeige überfällige Bauaufträge"
-#: common/models.py:972
+#: common/models.py:1081
msgid "Show overdue builds on the homepage"
msgstr "Zeige überfällige Bauaufträge auf der Startseite"
-#: common/models.py:977
+#: common/models.py:1086
msgid "Show outstanding POs"
msgstr "Ausstehende POs anzeigen"
-#: common/models.py:978
+#: common/models.py:1087
msgid "Show outstanding POs on the homepage"
msgstr "Ausstehende POs auf der Startseite anzeigen"
-#: common/models.py:983
+#: common/models.py:1092
msgid "Show overdue POs"
msgstr "Überfällige POs anzeigen"
-#: common/models.py:984
+#: common/models.py:1093
msgid "Show overdue POs on the homepage"
msgstr "Überfällige POs auf der Startseite anzeigen"
-#: common/models.py:989
+#: common/models.py:1098
msgid "Show outstanding SOs"
msgstr "Ausstehende SOs anzeigen"
-#: common/models.py:990
+#: common/models.py:1099
msgid "Show outstanding SOs on the homepage"
msgstr "Ausstehende SOs auf der Startseite anzeigen"
-#: common/models.py:995
+#: common/models.py:1104
msgid "Show overdue SOs"
msgstr "Überfällige SOs anzeigen"
-#: common/models.py:996
+#: common/models.py:1105
msgid "Show overdue SOs on the homepage"
msgstr "Überfällige SOs auf der Startseite anzeigen"
-#: common/models.py:1002
+#: common/models.py:1111
msgid "Inline label display"
msgstr "Label inline anzeigen"
-#: common/models.py:1003
+#: common/models.py:1112
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:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr "Berichte inline anzeigen"
-#: common/models.py:1010
+#: common/models.py:1119
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:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr "Anzahl Suchergebnisse"
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr "Anzahl der Ergebnisse, die in der Vorschau angezeigt werden sollen"
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr "Suche Bestand anzeigen"
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr "Bestand in Suchvorschau anzeigen"
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr "Inaktive Teile ausblenden"
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr "Inaktive Teile in der Suchvorschau ausblenden"
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr "zeige Bestand in Eingabemasken"
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr "Zeige den verfügbaren Bestand in einigen Eingabemasken"
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
-msgstr ""
+msgstr "Esc-Taste schließt Formulare"
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
-msgstr ""
+msgstr "Benutze die Esc-Taste, um Formulare zu schließen"
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr "Fixierter Navigationsleiste"
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr "Position der InvenTree Navigationsleiste am oberen Bildschirmrand fixieren"
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr "Preisstaffelungs Anzahl"
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr "Preis"
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr "Stückpreis für die angegebene Anzahl"
-#: common/models.py:1189
-msgid "Default"
-msgstr "Standard"
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr "Aktueller Wert"
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr "Einstellungen ändern"
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr "Angegebener Wert nicht erlaubt"
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr "Angegebener Wert muss ein Wahrheitswert sein"
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr "Benutzereinstellungen ändern"
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr "Datei hochgeladen"
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr "Übereinstimmende Felder"
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr "Positionen zuordnen"
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr "Felder zuteilen fehlgeschlagen"
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr "Teile importiert"
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr "Firmenbeschreibung"
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr "Website"
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr "Kontakt-Telefon"
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr "Email"
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr "Anlaufstelle"
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr "Link"
@@ -2348,7 +2280,7 @@ msgstr "Link"
msgid "Link to external company information"
msgstr "Link auf externe Firmeninformation"
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr "Bild"
@@ -2376,8 +2308,8 @@ msgstr "ist Hersteller"
msgid "Does this company manufacture parts?"
msgstr "Produziert diese Firma Teile?"
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr "Währung"
@@ -2385,8 +2317,8 @@ msgstr "Währung"
msgid "Default currency used for this company"
msgstr "Standard-Währung für diese Firma"
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr "Basisteil"
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr "Teil auswählen"
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr "Hersteller"
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr "Hersteller auswählen"
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr "MPN"
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr "Hersteller-Teilenummer"
@@ -2431,7 +2363,7 @@ msgstr "Teilbeschreibung des Herstellers"
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr "Herstellerteil"
@@ -2441,9 +2373,8 @@ msgstr "Parametername"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr "Wert"
@@ -2451,8 +2382,10 @@ msgstr "Wert"
msgid "Parameter value"
msgstr "Parameterwert"
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr "Einheiten"
@@ -2462,30 +2395,30 @@ msgstr "Parametereinheit"
#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
-msgstr ""
+msgstr "Verlinktes Herstellerteil muss dasselbe Basisteil referenzieren"
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr "Zulieferer"
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr "Zulieferer auswählen"
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr "SKU (Lagerbestandseinheit)"
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr "Lagerbestandseinheit (SKU) des Zulieferers"
@@ -2501,23 +2434,23 @@ msgstr "Teil-URL des Zulieferers"
msgid "Supplier part description"
msgstr "Zuliefererbeschreibung des Teils"
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Notiz"
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr "Basiskosten"
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr "Mindestpreis"
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr "Verpackungen"
@@ -2525,7 +2458,7 @@ msgstr "Verpackungen"
msgid "Part packaging"
msgstr "Teile-Verpackungen"
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr "Vielfache"
@@ -2533,47 +2466,43 @@ msgstr "Vielfache"
msgid "Order multiple"
msgstr "Mehrere bestellen"
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr "Standard-Währung für diesen Zulieferer"
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr "Währungscode"
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr "Firma"
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr "Neues Bild hochladen"
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr "Bild von URL herunterladen"
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr "Bestellung anlegen"
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr "Firmeninformation bearbeiten"
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr "Firma löschen"
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
-msgstr "Firmendetails"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr "Neues Bild hochladen"
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
+msgstr "Bild von URL herunterladen"
#: company/templates/company/company_base.html:81
msgid "Uses default currency"
@@ -2583,145 +2512,140 @@ msgstr "verwendet Standard-Währung"
msgid "Phone"
msgstr "Telefon"
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr "Kunde"
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr "Bild hochladen"
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr "Zuliefererteile"
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr "Neues Zuliefererteil anlegen"
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr "Neues Zuliefererteil"
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr "Optionen"
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr "Teile bestellen"
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr "Teile löschen"
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr "Teile löschen"
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr "Herstellerteile"
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr "Neues Herstellerteil anlegen"
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr "Neues Herstellerteil"
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr "Zulieferer-Bestand"
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr "Bestellungen"
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr "Neue Bestellung anlegen"
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr "Neue Bestellung"
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr "Aufträge"
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr "Neuen Auftrag anlegen"
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr "Neuer Auftrag"
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr "Zugeordneter Bestand"
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr "Firmenbemerkungen"
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr "Zuliefererteil entfernen?"
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr "Alle ausgewählten Zulieferteile werden gelöscht"
@@ -2729,227 +2653,223 @@ msgstr "Alle ausgewählten Zulieferteile werden gelöscht"
msgid "Supplier List"
msgstr "Zulieferer-Liste"
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr "Hersteller"
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Teil bestellen"
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr "Herstellerteil bearbeiten"
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr "Herstellerteil löschen"
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr "Herstellerteil-Details"
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr "Internes Teil"
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr "Zulieferer"
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr "Zuliefererteil entfernen"
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr "Löschen"
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr "Parameter"
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr "Neuer Parameter"
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr "Parameter löschen"
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr "Parameter hinzufügen"
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr "Ausgewählte Parameter werden gelöscht"
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr "Parameter löschen"
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr "Herstellerteil-Bestand"
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr "Lagerbestand"
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr "Herstellerteil-Bestellungen"
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr "Bestellungen"
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
-msgstr "Hergestellte Teile"
+msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
-msgstr "Zuliefererteile"
+msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr "Teilbestand"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr "Zuliefererteil"
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr "Zuliefererteil bearbeiten"
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr "Zuliefererteil entfernen"
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr "Zuliefererteil Details"
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr "Zulieferer-Bestand"
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr "Neuen Lagerartikel hinzufügen"
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr "Neuer Lagerartikel"
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr "Zulieferer-Bestellungen"
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr "Teil bestellen"
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr "Preisinformationen ansehen"
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr "Preisstaffel hinzufügen"
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr "Keine Informationen zur Preisstaffel gefunden"
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr "Preisstaffel löschen"
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr "Preisstaffel bearbeiten"
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr "Preisstaffel bearbeiten"
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr "Preisstaffel löschen"
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr "Bestand"
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr "Bestellungen"
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr "Zuliefererteil Bepreisung"
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr "Bepreisung"
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr "Lagerartikel"
+
#: company/views.py:50
msgid "New Supplier"
msgstr "Neuer Zulieferer"
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr "Hersteller"
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr "Neuer Hersteller"
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr "Kunden"
@@ -2965,20 +2885,20 @@ msgstr "Firmen"
msgid "New Company"
msgstr "Neue Firma"
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr "Bild herunterladen"
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr "Bildgröße überschreitet maximal-erlaubte Größe für Downloads"
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Ungültige Antwort {code}"
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr "Angegebene URL ist kein gültiges Bild"
@@ -2994,7 +2914,7 @@ msgstr "Label Name"
msgid "Label description"
msgstr "Label Beschreibung"
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr "Label"
@@ -3036,7 +2956,7 @@ msgstr "Muster für die Erstellung von Label-Dateinamen"
#: label/models.py:258
msgid "Query filters (comma-separated list of key=value pairs),"
-msgstr ""
+msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
#: label/models.py:259 label/models.py:319 label/models.py:366
#: report/models.py:322 report/models.py:457 report/models.py:495
@@ -3049,242 +2969,238 @@ msgstr "Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
#: label/models.py:365
msgid "Part query filters (comma-separated value of key=value pairs)"
-msgstr ""
+msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr "Bestellung aufgeben"
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr "Bestellung als vollständig markieren"
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr "Bestellung stornieren"
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr "Bestellung versenden"
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
-msgstr "Seriennummern für BestandsObjekt eingeben"
+msgstr "Seriennummern für Lagerartikel eingeben"
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
-msgstr "Menge der BestandsObjekt eingeben"
+msgstr "Menge der Lagerartikel eingeben"
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr "Bestellungs-Beschreibung"
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr "Link auf externe Seite"
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr "Erstellt von"
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr "Nutzer oder Gruppe der/die für diesen Auftrag zuständig ist/sind"
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr "Bestell-Notizen"
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr "Bestell-Referenz"
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr "Bestellungs-Status"
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr "Firma bei der die Teile bestellt werden"
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr "Zulieferer-Referenz"
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr "Zulieferer Bestellreferenz"
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr "Empfangen von"
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr "Aufgabedatum"
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr "Datum an dem die Bestellung aufgegeben wurde"
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr "Ziel-Versanddatum"
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr "Geplantes Lieferdatum für Auftrag."
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr "Datum an dem der Auftrag fertigstellt wurde"
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr "Teile-Zulieferer muss dem Zulieferer der Bestellung entsprechen"
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr "Anzahl muss eine positive Zahl sein"
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr "Firma an die die Teile verkauft werden"
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr "Kundenreferenz"
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr "Bestellreferenz"
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr "Zieldatum für Auftrags-Fertigstellung."
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr "Versanddatum"
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr "Versand von"
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr "Bestellung kann nicht versendet werden weil er nicht anhängig ist"
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr "Anzahl"
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr "Position - Referenz"
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr "Position - Notizen"
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr "Bestellung"
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr "Bestellung"
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr "Zuliefererteil"
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr "Empfangen"
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr "Empfangene Objekt-Anzahl"
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr "Preis"
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr "Preis pro Einheit"
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Wo möchte der Käufer diesen Artikel gelagert haben?"
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "Verkaufspreis"
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr "Stückverkaufspreis"
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
-msgstr "BestandsObjekt wurde nicht zugewiesen"
+msgstr "Lagerartikel wurde nicht zugewiesen"
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
-msgstr "Kann BestandsObjekt keiner Zeile mit einem anderen Teil hinzufügen"
+msgstr "Kann Lagerartikel keiner Zeile mit einem anderen Teil hinzufügen"
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
-msgstr "Kann BestandsObjekt keiner Zeile ohne Teil hinzufügen"
+msgstr "Kann Lagerartikel keiner Zeile ohne Teil hinzufügen"
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Die zugeordnete Anzahl darf nicht die verfügbare Anzahl überschreiten"
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
-msgstr "Zu viele BestandsObjekt zugewiesen"
+msgstr "Zu viele Lagerartikel zugewiesen"
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
-msgstr "Anzahl für BestandsObjekt mit Seriennummer muss 1 sein"
+msgstr "Anzahl für serialisierte Lagerartikel muss 1 sein"
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr "Position"
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr "Position"
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
-msgstr "BestandsObjekt für Zuordnung auswählen"
+msgstr "Lagerartikel für Zuordnung auswählen"
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
@@ -3300,7 +3216,7 @@ msgstr "Position"
msgid "Line item does not match purchase order"
msgstr "Position stimmt nicht mit Kaufauftrag überein"
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr "Zielort für empfangene Teile auswählen"
@@ -3312,72 +3228,70 @@ msgstr "Barcode-Hash"
msgid "Unique identifier field"
msgstr "Einzigartiger Identifikator"
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr "Barcode ist bereits in Verwendung"
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr "Positionen müssen angegeben werden"
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr "Ziel-Lagerort muss angegeben werden"
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
-msgstr ""
+msgstr "Barcode muss eindeutig sein"
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr "Verkaufspreis-Währung"
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr "Sind Sie sicher, dass Sie diesen Anhang löschen wollen?"
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
-msgstr "Drucken"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
+msgstr "Bestellbericht drucken"
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr "Exportiere Bestellung in Datei"
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
-msgstr "Bestellung bearbeiten"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
+msgstr "Bestell-Aktionen"
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr "Auftrag bearbeiten"
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr "Elemente empfangen"
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr "Bestellungs-Details"
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr "Bestellreferenz"
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr "Bestellstatus"
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr "Aufgegeben"
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr "Bestellung bearbeiten"
@@ -3453,7 +3367,8 @@ msgstr "Auswahl duplizieren"
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr "Zeile entfernen"
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr "Datei zur Bestellung hochladen"
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr "Bestellungen auswählen oder anlegen."
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr "Positionen"
@@ -3550,28 +3465,48 @@ msgstr "Bestellung für %(name)s auswählen"
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr "Bestellungs-Anhänge"
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr "Bestellungs-Details"
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr "Details"
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
-msgstr "BestandsObjekte empfangen"
+msgstr "Lagerartikel empfangen"
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr "Empfangene Teile"
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr "Positionen"
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr "Bestellungs-Positionen"
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr "Position hinzufügen"
@@ -3583,34 +3518,39 @@ msgstr "Ausgewählte Positionen erhalten"
msgid "Receive Items"
msgstr "Teile empfangen"
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr "Notizen zur Bestellung"
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr "Berichte drucken"
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr "Verkaufsauftragsbericht drucken"
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr "Paketliste drucken"
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr "Versenden"
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr "Dieser Auftrag ist nicht vollständig zugeordnet"
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr "Packliste"
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr "Auftragsdetails"
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr "Kundenreferenz"
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr "Auftrag bearbeiten"
@@ -3625,7 +3565,7 @@ msgstr "Warnung"
msgid "Cancelling this order means that the order will no longer be editable."
msgstr "Abbruch dieser Bestellung bedeutet, dass sie nicht länger bearbeitbar ist."
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr "Auftrags-Positionen"
@@ -3653,18 +3593,6 @@ msgstr "Versenden dieses Auftrags bedeutet, dass der Auftrag nicht mehr bearbeit
msgid "Allocate stock items by serial number"
msgstr "Teilebestand per Seriennummer zuweisen"
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr "Auftragspositionen"
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr "Auftragspositionen"
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr "Auftrags-Anhänge"
-
#: order/views.py:103
msgid "Cancel Order"
msgstr "Bestellung stornieren"
@@ -3705,10 +3633,6 @@ msgstr "Fertigstellung bestätigen"
msgid "Purchase order completed"
msgstr "Bestellung als vollständig markieren"
-#: order/views.py:222
-msgid "Ship Order"
-msgstr "Versenden"
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr "Versand bestätigen"
@@ -3776,42 +3700,30 @@ 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/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr "Teile"
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr "Muss größer als 0 sein"
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr "Muss eine gültige Nummer sein"
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr "Standort für anfänglichen Bestand angeben"
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr "Dieses Feld ist erforderlich"
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr "Standard-Lagerort"
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
-msgstr "Verfügbarer Lagerbestand"
+msgstr "Verfügbarer Bestand"
#: part/forms.py:63
msgid "File Format"
@@ -3869,7 +3781,7 @@ msgstr "Zulieferer einschließen"
msgid "Include part supplier data in exported BOM"
msgstr "Zulieferer-Daten in Stückliste-Export einschließen"
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr "Ausgangsteil"
@@ -3893,464 +3805,466 @@ msgstr "kontrollieren"
msgid "Confirm that the BOM is correct"
msgstr "Bestätigen, dass die Stückliste korrekt ist"
-#: part/forms.py:170
-msgid "Related Part"
-msgstr "verknüpftes Teil"
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr "Teil-Kategorie wählen"
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr "Parameter-Vorlage zu Kategorien dieser Ebene hinzufügen"
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr "Parameter-Vorlage zu allen Kategorien hinzufügen"
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr "Menge für die Preisberechnung"
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr "Standard-Lagerort für Teile dieser Kategorie"
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr "Standard Stichwörter"
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr "Standard-Stichworte für Teile dieser Kategorie"
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "Teil-Kategorie"
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr "Teil-Kategorien"
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr "Teile"
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr "Ungültige Auswahl für übergeordnetes Teil"
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr "Teil '{p1}' wird in Stückliste für Teil '{p2}' benutzt (rekursiv)"
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr "Nächste verfügbare Seriennummern wären"
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr "Nächste verfügbare Seriennummer ist"
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr "Die neuste Seriennummer ist"
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr "Doppelte IPN in den Teil-Einstellungen nicht erlaubt"
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr "Name des Teils"
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr "Ist eine Vorlage"
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr "Ist dieses Teil eine Vorlage?"
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr "Ist dieses Teil eine Variante eines anderen Teils?"
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr "Variante von"
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr "Beschreibung des Teils"
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr "Schlüsselwörter"
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr "Schlüsselworte um die Sichtbarkeit in Suchergebnissen zu verbessern"
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr "Kategorie"
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr "Teile-Kategorie"
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr "IPN (Interne Produktnummer)"
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr "Interne Teilenummer"
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr "Revisions- oder Versionsnummer"
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr "Revision"
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr "Standard Zulieferer"
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr "Standard Zuliefererteil"
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr "Standard Ablaufzeit"
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
-msgstr "Ablauf-Zeit (in Tagen) für Lagerbestand dieses Teils"
+msgstr "Ablauf-Zeit (in Tagen) für Bestand dieses Teils"
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
-msgstr "Minimaler Lagerbestand"
+msgstr "Minimaler Bestand"
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
-msgstr "Minimal zulässiger Lagerbestand"
+msgstr "Minimal zulässiger Bestand"
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr "Stock Keeping Units (SKU) für dieses Teil"
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr "Kann dieses Teil aus anderen Teilen angefertigt werden?"
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr "Kann dieses Teil zum Bauauftrag von anderen genutzt werden?"
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr "Hat dieses Teil Tracking für einzelne Objekte?"
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr "Kann dieses Teil von externen Zulieferern gekauft werden?"
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr "Kann dieses Teil an Kunden verkauft werden?"
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr "Aktiv"
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr "Ist dieses Teil aktiv?"
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr "Ist dieses Teil virtuell, wie zum Beispiel eine Software oder Lizenz?"
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr "Bemerkungen - unterstüzt Markdown-Formatierung"
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr "Prüfsumme der Stückliste gespeichert"
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr "Stückliste kontrolliert von"
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr "BOM Kontrolldatum"
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr "Erstellungs-Nutzer"
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr "Mehrere verkaufen"
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr "Test-Vorlagen können nur für verfolgbare Teile angelegt werden"
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr "Ein Test mit diesem Namen besteht bereits für dieses Teil"
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr "Test-Name"
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr "Namen für diesen Test eingeben"
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr "Test-Beschreibung"
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr "Beschreibung für diesen Test eingeben"
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr "Benötigt"
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr "Muss dieser Test erfolgreich sein?"
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr "Erfordert Wert"
-#: part/models.py:2156
+#: part/models.py:2329
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:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr "Anhang muss eingegeben werden"
-#: part/models.py:2162
+#: part/models.py:2335
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:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr "Ungültiges Zeichen im Vorlagename ({c})"
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr "Vorlagen-Name des Parameters muss eindeutig sein"
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr "Name des Parameters"
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr "Einheit des Parameters"
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr "Parameter Vorlage"
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr "Wert"
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr "Parameter Wert"
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr "Standard-Wert"
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr "Standard Parameter Wert"
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr "Ausgangsteil auswählen"
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr "Untergeordnetes Teil"
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr "Teil für die Nutzung in der Stückliste auswählen"
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr "Stücklisten-Anzahl für dieses Stücklisten-Teil"
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr "Optional"
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr "Diese Stücklisten-Position ist optional"
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr "Überschuss"
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr "Geschätzter Ausschuss (absolut oder prozentual)"
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr "Referenz der Postion auf der Stückliste"
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr "Notizen zur Stücklisten-Position"
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr "Prüfsumme"
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr "Prüfsumme der Stückliste"
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr "Geerbt"
-#: part/models.py:2396
+#: part/models.py:2595
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:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr "Varianten zulassen"
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
-msgstr "Lagerbestand von Varianten kann für diese Stücklisten-Position verwendet werden"
+msgstr "Bestand von Varianten kann für diese Stücklisten-Position verwendet werden"
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr "Menge muss eine Ganzzahl sein"
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr "Zuliefererteil muss festgelegt sein"
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr "Stücklisten Ersatzteile"
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr "Ersatzteil kann nicht identisch mit dem Hauptteil sein"
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr "Übergeordnete Stücklisten Position"
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr "Ersatzteil"
+
+#: part/models.py:2879
msgid "Part 1"
msgstr "Teil 1"
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr "Teil 2"
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr "verknüpftes Teil auswählen"
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr "Fehler bei Verwandschaft: Ist das Teil mit sich selbst verwandt oder ist das die Verwandtschaft nicht eindeutig?"
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr "Benachrichtigungen über geringen Bestand"
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr "Sie haben keine Berechtigung zum Bearbeiten der Stückliste."
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr "Die Stückliste für %(part)s hat sich geändert und muss kontrolliert werden.
"
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr "Die Stückliste für %(part)s wurde zuletzt von %(checker)s am %(check_date)s kontrolliert"
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr "Die Stückliste für %(part)s wurde noch nicht kontrolliert."
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr "Ausgewählte Stücklistenpositionen entfernen"
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
-msgstr "Stückliste importieren"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
+msgstr "Stücklisten-Aktionen"
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr "Stückliste von übergeordnetem Teil kopieren"
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr "Neue Stücklisten-Position"
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr "Bearbeitung beenden"
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr "Stückliste bearbeiten"
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr "Stückliste kontrollieren"
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr "Stückliste exportieren"
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
-msgstr "Stücklisten-Bericht drucken"
+msgid "Delete Items"
+msgstr "Einträge löschen"
#: part/templates/part/bom_duplicate.html:13
msgid "This part already has a Bill of Materials"
@@ -4360,28 +4274,27 @@ msgstr "Dieses Teil hat bereits eine Stückliste"
msgid "Select Part"
msgstr "Teil auswählen"
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
-msgstr "Zurück zur Stückliste"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr "Stückliste hochladen"
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr "Anforderungen für Stückliste-Datei"
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr "Die Stückliste-Datei muss die aufgeführten Spalten enthalten; siehe"
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr "Vorlage für Stückliste"
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr "Jedes Teil muss bereits in der Datenbank bestehen"
@@ -4394,93 +4307,104 @@ msgstr "Bestätigen Sie das die Stückliste für
%(part)s korrekt i
msgid "This will validate each line in the BOM."
msgstr "Damit wird jede Zeile der Stückliste kontrolliert"
-#: part/templates/part/category.html:33
-msgid "All parts"
-msgstr "Alle Teile"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr "Sie haben Benachrichtigungen für diese Kategorie abonniert"
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
+msgstr "Benachrichtigungen für diese Kategorie abonnieren"
#: part/templates/part/category.html:38
+msgid "Category Actions"
+msgstr "Kategorieaktionen"
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
+msgstr "Kategorie bearbeiten"
+
+#: part/templates/part/category.html:44
+msgid "Edit Category"
+msgstr "Kategorie bearbeiten"
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
+msgstr "Kategorie löschen"
+
+#: part/templates/part/category.html:49
+msgid "Delete Category"
+msgstr "Kategorie löschen"
+
+#: part/templates/part/category.html:57
msgid "Create new part category"
msgstr "Teil-Kategorie anlegen"
-#: part/templates/part/category.html:44
-msgid "Edit part category"
-msgstr "Teil-Kategorie bearbeiten"
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr "Neue Kategorie"
-#: part/templates/part/category.html:49
-msgid "Delete part category"
-msgstr "Teil-Kategorie löschen"
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr "Oberste Teil-Kategorie"
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
-msgstr "Kategorie-Details"
-
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr "Pfad zur Kategorie"
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr "Kategorie-Beschreibung"
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr "Unter-Kategorien"
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr "Teile (inklusive Unter-Kategorien)"
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr "Teile-Daten exportieren"
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr "Exportieren"
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr "Neues Teil anlegen"
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr "Neues Teil"
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr "Teil-Kategorie auswählen"
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr "Teil-Kategorie auswählen"
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr "Label drucken"
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr "Exportieren"
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr "Listenansicht anzeigen"
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr "Rasteransicht anzeigen"
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr "Teilparameter"
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr "Teil-Kategorie hinzufügen"
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr "Teil hinzufügen"
@@ -4519,12 +4443,11 @@ msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die übergeordnete
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr "Wenn diese Kat. gelöscht wird, werden diese Teile in die oberste Kat. verschoben"
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
-msgstr "Teile importieren"
+msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr "Teil duplizieren"
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr "%(full_name)s - %(desc)s (%(match_per)s%% übereinstimmend)"
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr "Teile-Details"
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr "Minimaler Bestand"
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr "letzte Seriennummer"
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr "Teilbestand"
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
-msgstr "Lagerbestand aller Varianten von %(full_name)s"
+msgstr "Bestand aller Varianten von %(full_name)s"
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr "Teil Test-Vorlagen"
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr "Test Vorlage hinzufügen"
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr "Neuer Auftrag"
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr "Neue Bestellung"
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr "Verkaufsauftragszuweisungen"
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr "Teil Varianten"
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr "Neue Variante anlegen"
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr "neue Variante anlegen"
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr "Parameter hinzufügen"
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr "Verknüpfte Teile"
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr "Verknüpftes Teil hinzufügen"
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr "Stückliste"
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr "Export-Aktionen"
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr "Stückliste exportieren"
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr "Stücklisten-Bericht drucken"
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr "Stückliste hochladen"
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr "Stückliste kopieren"
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr "Stückliste überprüfen"
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr "Neue Stücklisten-Position"
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr "Stücklisten-Position hinzufügen"
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr "Baugruppen"
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr "Gefertigte Teile"
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr "Neuen Bauauftrag beginnen"
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr "Bauauftragszuweisungen"
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr "Zulieferer"
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr "Teil-Hersteller"
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr "Herstellerteile löschen"
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr "Ausgewählte Stücklistenpositionen löschen?"
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr "Alle ausgewählte Stücklistenpositionen werden gelöscht"
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr "Stücklisten-Position anlegen"
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr "verknüpftes Teil"
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr "verknüpftes Teil hinzufügen"
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr "Testergebnis-Vorlage hinzufügen"
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr "Teilenotizen bearbeiten"
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr "Stückpreis Einkauf - %(currency)s"
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr "Stückpreis Differenz - %(currency)s"
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr "Stückpreis Zulieferer - %(currency)s"
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr "Stückpreis - %(currency)s"
@@ -4684,176 +4645,150 @@ msgstr "Unzureichende Benutzerrechte."
msgid "Import Parts from File"
msgstr "Teile aus Datei importieren"
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr "Varianten"
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr "Benutzt in"
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr "Preise"
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr "Testvorlagen"
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr "Teileliste"
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert"
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
-msgstr "Teil ist Vorlage (Varianten können von diesem Teil erstellt werden)"
+msgid "Subscribe to notifications for this part"
+msgstr "Benachrichtigungen für dieses Teil abonnieren"
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr "Teil kann aus anderen Teilen angefertigt werden"
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr "Teil kann in Baugruppen benutzt werden"
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr "Teil wird per Seriennummer verfolgt"
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr "Teil kann von externen Zulieferern gekauft werden"
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr "Teil kann an Kunden verkauft werden"
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr "Teil ist virtuell (kein physisches Teil)"
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr "Inaktiv"
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr "Teil favorisieren"
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr "Barcode Aktionen"
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr "QR-Code anzeigen"
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr "Label drucken"
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr "Kosteninformationen ansehen"
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr "Bestands-Aktionen"
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
-msgstr "Lagerbestand zählen"
+msgstr "Bestand zählen"
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr "Teilbestand verschieben"
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr "Teile Aktionen"
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr "Teil duplizieren"
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr "Teil bearbeiten"
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr "Teil löschen"
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr "Teil ist Vorlage (Varianten können von diesem Teil erstellt werden)"
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr "Teil kann aus anderen Teilen angefertigt werden"
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr "Teil kann in Baugruppen benutzt werden"
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr "Teil wird per Seriennummer verfolgt"
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr "Teil kann von externen Zulieferern gekauft werden"
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr "Teil kann an Kunden verkauft werden"
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr "Teil ist virtuell (kein physisches Teil)"
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr "Inaktiv"
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr "Dieses Teil ist eine Variante von %(link)s"
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr "Auf Lager"
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr "Bestellt"
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr "Für Bauaufträge benötigt"
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr "Benötigt für Aufträge"
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr "Zu Bauaufträgen zugeordnet"
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr "Herstellbar"
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr "Im Bau"
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr "Teildetails anzeigen"
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr "letzte Seriennummer"
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr "Berechnen"
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr "Keine passenden Bilder gefunden"
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr "Teildetails ausblenden"
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr "Zulieferer-Preise"
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr "Gesamtkosten"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr "Keine Zulieferer-Preise verfügbar"
@@ -4911,7 +4846,19 @@ msgstr "Interner Preis"
msgid "No pricing information is available for this part."
msgstr "Keine Preise für dieses Teil verfügbar"
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr "Aus vorhandenen Bildern auswählen"
@@ -4937,7 +4884,7 @@ msgstr "Dieser Teil wird in Stücklisten für %(count)s andere Teile verwendet.
#: part/templates/part/partial_delete.html:32
#, python-format
msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:"
-msgstr "Es sind %(count)s BestandsObjekte für diesen Teil definiert. Wenn Sie diesen Teil löschen, werden auch die folgenden Bestandseinträge gelöscht:"
+msgstr "Es sind %(count)s Lagerartikel für diesen Teil definiert. Wenn Sie diesen Teil löschen, werden auch die folgenden Lagerartikel gelöscht:"
#: part/templates/part/partial_delete.html:43
#, python-format
@@ -4982,7 +4929,7 @@ msgstr "Verkaufspreis anzeigen"
msgid "Calculation parameters"
msgstr "Berechnungsparameter"
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr "Zuliefererkosten"
@@ -5004,7 +4951,7 @@ msgstr "Für dieses Teil sind keine Bestandspreise verfügbar."
msgid "Internal Cost"
msgstr "Interne Kosten"
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr "Interne Preisspanne hinzufügen"
@@ -5024,13 +4971,13 @@ msgstr "Keine Verkaufsgeschichte für diesen Teil verfügbar."
msgid "Set category for the following parts"
msgstr "Kategorie für Teile setzen"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr "Kein Bestand"
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr "niedriger Bestand"
@@ -5043,132 +4990,124 @@ msgstr "Neue Teilevariante anlegen"
msgid "Create a new variant of template '%(full_name)s'."
msgstr "Neue Variante von Vorlage anlegen '%(full_name)s'."
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr "Unbekannte Datenbank"
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr "verknüpftes Teil hinzufügen"
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr "verknüpftes Teil entfernen"
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr "Teil-Kategorie auswählen"
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "Kategorie für {n} Teile setzen"
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr "Referenzen zuteilen"
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr "Kein(e)"
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr "Teil-QR-Code"
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr "Teilbild auswählen"
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr "Teilbild aktualisiert"
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr "Teilbild nicht gefunden"
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr "Stückliste duplizieren"
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr "bestätige Duplizierung Stückliste von übergeordneter Stückliste"
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr "Stückliste überprüfen"
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr "Bestätigen, dass Stückliste korrekt ist"
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr "überprüfte Stückliste"
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr "Teile zuordnen"
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr "Stückliste exportieren"
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr "Löschen des Teils bestätigen"
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr "Teil wurde gelöscht"
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr "Teilbepreisung"
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr "Teilparametervorlage anlegen"
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr "Teilparametervorlage bearbeiten"
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr "Teilparametervorlage löschen"
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr "Teil-Kategorie bearbeiten"
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr "Teil-Kategorie löschen"
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr "Teil-Kategorie wurde gelöscht"
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr "Kategorieparametervorlage anlegen"
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr "Kategorieparametervorlage bearbeiten"
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr "Kategorieparametervorlage löschen"
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr "neue Preisstaffel hinzufügt"
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr "Interne Preisspanne bearbeiten"
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr "Interne Preisspanne löschen"
@@ -5198,7 +5137,7 @@ msgstr "Bericht-Vorlage ist ein"
#: report/models.py:323
msgid "StockItem query filters (comma-separated list of key=value pairs)"
-msgstr "BestandsObjekte-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
+msgstr "Lagerartikel-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)"
#: report/models.py:331
msgid "Include Installed Tests"
@@ -5206,7 +5145,7 @@ msgstr "einfügen Installiert in Tests"
#: report/models.py:332
msgid "Include test results for stock items installed inside assembled item"
-msgstr "Test-Ergebnisse für BestandsObjekte in Baugruppen einschließen"
+msgstr "Test-Ergebnisse für Lagerartikel in Baugruppen einschließen"
#: report/models.py:380
msgid "Build Filters"
@@ -5260,31 +5199,35 @@ msgstr "Ressource-Beschreibung"
msgid "Required For"
msgstr "benötigt für"
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr "Positionen"
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
-msgstr "BestandsObjekt Test-Bericht"
+msgstr "Lagerartikel Test-Bericht"
+
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr "Seriennummer"
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr "Testergebnisse"
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr "Test"
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr "Ergebnis"
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr "Datum"
@@ -5296,522 +5239,544 @@ msgstr "bestanden"
msgid "Fail"
msgstr "fehlgeschlagen"
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr "Menge ist erforderlich"
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr "Ablaufdatum"
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
-msgstr "Ablaufdatum für dieses BestandsObjekt"
+msgstr "Ablaufdatum für diesen Lagerartikel"
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr "Eindeutige Seriennummern eingeben (oder leer lassen)"
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr "Lagerort für serial"
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr "Seriennummern"
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr "Anzahl der eindeutigen Seriennummern (muss mit der Anzahl übereinstimmen)"
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr " Transaktionsnotizen hinzufügen (optional)"
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr "Test Bericht Vorlage auswählen"
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
-msgstr "BestandsObjekt zum verbauen"
+msgstr "Lagerartikel für Einbau"
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr "Anzahl darf die verfügbare Anzahl nicht überschreiten"
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr "Ziel Lagerort für unverbaute Objekte"
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr "nicht mehr verbauen bestätigen"
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
-msgstr "Entfernen der verbauten BestandsObjekt bestätigen"
+msgstr "Entfernen der verbauten Lagerartikel bestätigen"
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr "Besitzer"
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr "Besitzer auswählen"
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
-msgstr "Ein BestandsObjekt mit dieser Seriennummer existiert bereits"
+msgstr "Ein Lagerartikel mit dieser Seriennummer existiert bereits"
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "Teile-Typ ('{pf}') muss {pe} sein"
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr "Anzahl muss für Objekte mit Seriennummer 1 sein"
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Seriennummer kann nicht gesetzt werden wenn die Anzahl größer als 1 ist"
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr "Teil kann nicht zu sich selbst gehören"
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr "Teil muss eine Referenz haben wenn is_building wahr ist"
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr "Referenz verweist nicht auf das gleiche Teil"
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
-msgstr "Eltern-BestandsObjekt"
+msgstr "Eltern-Lagerartikel"
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr "Basis-Teil"
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
-msgstr "Passendes Zuliefererteil für dieses BestandsObjekt auswählen"
+msgstr "Passendes Zuliefererteil für diesen Lagerartikel auswählen"
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Bestand-Lagerort"
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr "Wo wird dieses Teil normalerweise gelagert?"
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
-msgstr "Die Verpackung dieses BestandsObjekt ist gelagert in"
+msgstr "Die Verpackung dieses Lagerartikel ist gelagert in"
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr "verbaut in"
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr "Ist dieses Teil in einem anderen verbaut?"
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr "Seriennummer für dieses Teil"
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
-msgstr "Losnummer für dieses BestandsObjekt"
+msgstr "Losnummer für diesen Lagerartikel"
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr "Bestand"
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr "Quellbau"
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
-msgstr "Bauauftrag für dieses BestandsObjekt"
+msgstr "Bauauftrag für diesen Lagerartikel"
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr "Quelle Bestellung"
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
-msgstr "Bestellung für dieses BestandsObjekt"
+msgstr "Bestellung für diesen Lagerartikel"
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr "Ziel-Auftrag"
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
-msgstr "Ablaufdatum für BestandsObjekt. Bestand wird danach als abgelaufen gekennzeichnet"
+msgstr "Ablaufdatum für Lagerartikel. Bestand wird danach als abgelaufen gekennzeichnet"
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr "Löschen wenn leer"
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
-msgstr "Dieses BestandsObjekt löschen wenn Bestand aufgebraucht"
+msgstr "Diesen Lagerartikel löschen wenn der Bestand aufgebraucht ist"
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
-msgstr "BestandsObjekt-Notizen"
+msgstr "Lagerartikel-Notizen"
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr "Preis für eine Einheit bei Einkauf"
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr "Zur Löschung vorgesehen"
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
-msgstr "Dieser Lagerbestand wird vom Hintergrund-Prozess gelöscht"
+msgstr "Dieser Lagerartikel wird vom Hintergrund-Prozess gelöscht"
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr "Teil ist nicht verfolgbar"
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr "Anzahl muss eine Ganzzahl sein"
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr "Anzahl darf nicht die verfügbare Anzahl überschreiten ({n})"
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr "Seriennummern muss eine Liste von Ganzzahlen sein"
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr "Anzahl stimmt nicht mit den Seriennummern überein"
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seriennummern {exists} existieren bereits"
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
-msgstr "BestandsObjekt kann nicht bewegt werden, da kein Bestand vorhanden ist"
+msgstr "Lagerartikel kann nicht bewegt werden, da kein Bestand vorhanden ist"
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr "Eintrags-Notizen"
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr "Wert muss für diesen Test angegeben werden"
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr "Anhang muss für diesen Test hochgeladen werden"
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr "Name des Tests"
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr "Testergebnis"
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr "Test Ausgabe Wert"
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr "Test Ergebnis Anhang"
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr "Test Notizen"
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
-msgstr ""
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
+msgstr "Kaufpreis für diesen Lagerartikel"
-#: stock/serializers.py:452
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
+msgstr "Kaufwährung dieses Lagerartikels"
+
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
+msgstr "Anzahl der zu serialisierenden Lagerartikel eingeben"
+
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr "Anzahl darf nicht die verfügbare Menge überschreiten ({q})"
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr "Seriennummern für neue Teile eingeben"
+
+#: stock/serializers.py:319 stock/serializers.py:687
+msgid "Destination stock location"
+msgstr "Ziel-Bestand"
+
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr "Optionales Notizfeld"
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr "Seriennummern können diesem Teil nicht zugewiesen werden"
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr "Primärschlüssel Lagerelement"
+
+#: stock/serializers.py:585
msgid "Stock transaction notes"
msgstr "Bestandsbewegungsnotizen"
-#: stock/serializers.py:462
+#: stock/serializers.py:595
msgid "A list of stock items must be provided"
msgstr "Eine Liste der Lagerbestände muss angegeben werden"
-#: stock/serializers.py:554
-msgid "Destination stock location"
-msgstr "Ziel-Lagerbestand"
-
-#: stock/templates/stock/item.html:17
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
-msgstr "Informationen zum Lagerbestands-Tracking"
+msgstr "Informationen zur Bestand-Verfolgung"
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr "neuer Eintrag"
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
-msgstr "Kind-BestandsObjekt"
+msgstr "Kind-Lagerartikel"
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
-msgstr "Dieses BestandsObjekt hat keine Kinder"
+msgstr "Dieser Lagerartikel hat keine Kinder"
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr "Testdaten"
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr "Testdaten löschen"
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr "Testdaten hinzufügen"
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr "Test-Bericht"
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr "Testdaten löschen"
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr "Testdaten hinzufügen"
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
-msgstr "Installierte BestandsObjekte"
+msgstr "Installierte Lagerartikel"
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
-msgstr "BestandsObjekt installiert"
+msgstr "Lagerartikel installieren"
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr "Testergebnis hinzufügen"
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr "Testergebnis bearbeiten"
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr "Testergebnis löschen"
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr "abgelaufen"
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr "überfällig"
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr "Barcode abhängen"
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr "Barcode anhängen"
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr "zu Lagerort einscannen"
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr "Druck Aktionen"
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr "Bestands-Anpassungs Aktionen"
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr "Bestand zählen"
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr "Bestand hinzufügen"
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr "Bestand entfernen"
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
-msgstr "Lagerbestand serialisieren"
+msgstr "Bestand serialisieren"
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr "Bestand verschieben"
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr "Kunden zuweisen"
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr "zu Bestand zurückgeben"
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
-msgstr "BestandsObjekt deinstallieren"
+msgstr "Lagerartikel deinstallieren"
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr "Deinstallieren"
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
-msgstr "BestandsObjekt installieren"
+msgstr "Lagerartikel installieren"
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr "Installieren"
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr "in Variante ändern"
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
-msgstr "BestandsObjekt duplizieren"
+msgstr "Lagerartikel duplizieren"
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
-msgstr "BestandsObjekt bearbeiten"
+msgstr "Lagerartikel bearbeiten"
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
-msgstr "BestandsObjekt löschen"
+msgstr "Lagerartikel löschen"
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr "abgelaufen"
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr "überfällig"
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
-msgstr "Dieses BestandsObjekt wird gerade hergestellt und kann nicht geändert werden."
+msgstr "Dieser Lagerartikel wird gerade hergestellt und kann nicht geändert werden."
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
-msgstr "Ändern des BestandsObjekts in der Bauauftrag-Ansicht."
+msgstr "Ändern des Lagerartikel in der Bauauftrag-Ansicht."
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
-msgstr "Dieses BestandsObjekt hat nicht alle Tests bestanden"
+msgstr "Dieser Lagerartikel hat nicht alle Tests bestanden"
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
-msgstr "Dieses BestandsObjekt ist dem Auftrag %(link)s zugewiesen (Menge: %(qty)s)"
+msgstr "Dieser Lagerartikel ist dem Auftrag %(link)s zugewiesen (Menge: %(qty)s)"
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
-msgstr "Dieses BestandsObjekt ist dem Bauauftrag %(link)s zugewiesen (Menge: %(qty)s)"
+msgstr "Dieser Lagerartikel ist dem Bauauftrag %(link)s zugewiesen (Menge: %(qty)s)"
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
-msgstr "Dieses BestandsObjekt ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht angepasst werden."
+msgstr "Diesesr Lagerartikel ist serialisiert. Es hat eine eindeutige Seriennummer und die Anzahl kann nicht angepasst werden."
-#: stock/templates/stock/item_base.html:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
-msgstr "Dieses BestandsObjekt kann nicht gelöscht werden, da es Kinder besitzt"
+msgstr "Dieser Lagerartikel kann nicht gelöscht werden, da es Kinder besitzt"
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
-msgstr "Dieses BestandsObjekt wird automatisch gelöscht wenn der Lagerbestand aufgebraucht ist."
+msgstr "Dieser Bestand wird automatisch gelöscht wenn der Bestand aufgebraucht ist."
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr "BestandsObjekt-Details"
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr "vorherige Seite"
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr "nächste Seite"
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr "Kein Lagerort gesetzt"
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr "Barcode-Bezeichner"
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr "Elternposition"
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr "Kein Hersteller ausgewählt"
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
-msgstr "Dieses BestandsObjekt lief am %(item.expiry_date)s ab"
+msgstr "Dieser Lagerartikel lief am %(item.expiry_date)s ab"
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
-msgstr "Dieses BestandsObjekt läuft am %(item.expiry_date)s ab"
+msgstr "Dieser Lagerartikel läuft am %(item.expiry_date)s ab"
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr "Zuletzt aktualisiert"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr "Letzte Inventur"
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr "Keine Inventur ausgeführt"
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr "Tests"
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr "Speichern"
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr "Bestandsstatus bearbeiten"
#: stock/templates/stock/item_delete.html:9
msgid "Are you sure you want to delete this stock item?"
-msgstr "Sind Sie sicher, dass Sie dieses BestandsObjekt löschen wollen?"
+msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel löschen wollen?"
#: stock/templates/stock/item_delete.html:12
#, python-format
@@ -5820,36 +5785,36 @@ msgstr "Damit werden %(qty)s Elemente vom Bestand von %
#: stock/templates/stock/item_install.html:8
msgid "Install another Stock Item into this item."
-msgstr "Ein weiteres BestandsObjekt in dieses Teil installiert."
+msgstr "Einen weiteren Lagerartikel in dieses Teil installiert."
#: stock/templates/stock/item_install.html:11
#: stock/templates/stock/item_install.html:24
msgid "Stock items can only be installed if they meet the following criteria"
-msgstr "BestandsObjekte können nur installiert werden wenn folgende Kriterien erfüllt werden"
+msgstr "Lagerartikel können nur installiert werden wenn folgende Kriterien erfüllt werden"
#: stock/templates/stock/item_install.html:14
msgid "The Stock Item links to a Part which is in the BOM for this Stock Item"
-msgstr ""
+msgstr "Der Lagerartikel ist auf ein Teil verknüpft das in der Stückliste für diesen Lagerartikel ist"
#: stock/templates/stock/item_install.html:15
msgid "The Stock Item is currently in stock"
-msgstr ""
+msgstr "Dieser Lagerartikel ist aktuell vorhanden"
#: stock/templates/stock/item_install.html:16
msgid "The Stock Item is serialized and does not belong to another item"
-msgstr ""
+msgstr "Der Lagerartikel ist serialisiert und gehört nicht zu einem anderen Teil"
#: stock/templates/stock/item_install.html:21
msgid "Install this Stock Item in another stock item."
-msgstr ""
+msgstr "Diesen Lagerartikel in einem anderen Lagerartikel installieren."
#: stock/templates/stock/item_install.html:27
msgid "The part associated to this Stock Item belongs to another part's BOM"
-msgstr ""
+msgstr "Das diesem Lagerartikel zugeordnete Teil gehört zur Stückliste eines anderen Teils"
#: stock/templates/stock/item_install.html:28
msgid "This Stock Item is serialized and does not belong to another item"
-msgstr ""
+msgstr "Dieser Lagerartikel ist serialisiert und gehört nicht zu einem anderen Teil"
#: stock/templates/stock/item_serialize.html:5
msgid "Create serialized items from this stock item."
@@ -5859,122 +5824,89 @@ msgstr "Teile mit Seriennummern mit diesem BestandObjekt anlegen."
msgid "Select quantity to serialize, and unique serial numbers."
msgstr "Zu serialisierende Anzahl und eindeutige Seriennummern angeben."
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr "Sie sind nicht auf der Liste der Besitzer dieses Lagerorts. Der Bestands-Lagerort kann nicht verändert werden."
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr "Alle BestandsObjekte"
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr "Neuen Lagerort anlegen"
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr "Teile einchecken"
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr "Lagerort-Aktionen"
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr "Lagerort bearbeiten"
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr "Lagerort löschen"
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
-msgstr "Lagerort-Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
+msgstr "Neuen Lagerort anlegen"
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
-msgstr "Lagerort-Pfad"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
+msgstr "Neuer Lagerort"
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
-msgstr "Lagerort-Beschreibung"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
+msgstr "Oberster Lagerstandort"
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr "Sie sind nicht auf der Liste der Besitzer dieses Lagerorts. Der Bestands-Lagerort kann nicht verändert werden."
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr "Unter-Lagerorte"
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr "Objekt-Details"
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr "Bestand-Lagerorte"
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr "Druck Aktionen"
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr "Label drucken"
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr "Neuer Lagerort"
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr "Neuen Lagerort anlegen"
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr "Sind Sie sicher, dass Sie diesen Lagerort löschen wollen?"
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
-msgstr "BestandsObjekt-Verfolgung"
-
-#: stock/templates/stock/navbar.html:14
-msgid "History"
-msgstr "Geschichte"
-
-#: stock/templates/stock/navbar.html:30
-msgid "Installed Items"
-msgstr "verbaute Objekte"
-
-#: stock/templates/stock/navbar.html:38
-msgid "Child Items"
-msgstr "Kindobjekte"
-
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr "Kinder"
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr "Teil entfernen"
-
#: stock/templates/stock/stock_app_base.html:16
msgid "Loading..."
msgstr "Lade..."
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
-msgstr "Die folgenden BestandsObjekte werden nicht mehr verbaut"
+msgstr "Die folgenden Lagerartikel werden nicht mehr verbaut"
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
-msgstr "BestandsObjekt umwandeln"
+msgstr "Lagerartikel umwandeln"
#: stock/templates/stock/stockitem_convert.html:8
#, python-format
msgid "This stock item is current an instance of %(part)s"
-msgstr "BestandsObjekt ist aktuell eine Instanz von %(part)s"
+msgstr "Lagerartikel ist aktuell eine Instanz von %(part)s"
#: stock/templates/stock/stockitem_convert.html:9
msgid "It can be converted to one of the part variants listed below."
@@ -5986,108 +5918,104 @@ msgstr "Diese Aktion kann nicht einfach rückgängig gemacht werden"
#: stock/templates/stock/tracking_delete.html:6
msgid "Are you sure you want to delete this stock tracking entry?"
-msgstr "Sind Sie sicher, dass Sie diesen BestandsObjekt-Verfolgungs-Eintrag löschen wollen?"
+msgstr "Sind Sie sicher, dass Sie diesen Lagerartikel-Verfolgungs-Eintrag löschen wollen?"
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
-msgstr "BestandsObjekt-Lagerort bearbeiten"
+msgstr "Lagerartikel-Ort bearbeiten"
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr "Eigentümer notwendig (Eigentümerkontrolle aktiv)"
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr "QR-Code für diesen Lagerort"
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr "Kunden zuweisen"
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr "Kunde muss angegeben werden"
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr "zurück ins Lager"
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr "gültigen Lagerort angeben"
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
-msgstr "BestandsObjekt retoure vom Kunden"
+msgstr "Lagerartikel retoure vom Kunden"
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr "alle Testdaten löschen"
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr "Löschen Testdaten bestätigen"
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
-msgstr "BestandsObjekt-QR-Code"
+msgstr "Lagerartikel-QR-Code"
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
-msgstr "BestandsObjekte deinstallieren"
+msgstr "Lagerartikel deinstallieren"
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr "Bestands-Anpassung bestätigen"
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
-msgstr "BestandsObjekte deinstalliert"
+msgstr "Lagerartikel deinstalliert"
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
-msgstr "BestandsObjekt bearbeiten"
+msgstr "Lagerartikel bearbeiten"
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr "Neuen Lagerort erstellen"
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr "Lagerbestand erfassen"
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
-msgstr "Neues BestandsObjekt hinzufügen"
+msgstr "Neuen Lagerartikel hinzufügen"
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr "Bestand duplizieren"
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr "Anzahl kann nicht negativ sein"
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr "Bestand-Lagerort löschen"
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
-msgstr "BestandsObjekt löschen"
+msgstr "Lagerartikel löschen"
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
-msgstr "Lagerbestands-Tracking-Eintrag löschen"
+msgstr "Bestand-Tracking-Eintrag löschen"
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
-msgstr "Lagerbestands-Tracking-Eintrag bearbeiten"
+msgstr "Bestand-Verfolgungs-Eintrag bearbeiten"
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
-msgstr "Lagerbestands-Tracking-Eintrag hinzufügen"
+msgstr "Bestand-Verfolgungs-Eintrag hinzufügen"
#: templates/403.html:5 templates/403.html:11
msgid "Permission Denied"
@@ -6109,63 +6037,67 @@ msgstr "Seite existiert nicht"
msgid "Index"
msgstr "Index"
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
-msgstr "Teilfavoriten"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
+msgstr "Abonnierte Teile"
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr "Abonnierte Kategorien"
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr "neueste Teile"
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr "Stücklisten erwarten Kontrolle"
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr "kürzlich aktualisiert"
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr "Verbrauchter Bestand"
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr "abgelaufener Bestand"
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
-msgstr "Lagerbestand überfällig"
+msgstr "Bestand überfällig"
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr "laufende Bauaufträge"
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr "überfällige Bauaufträge"
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr "ausstehende Bestellungen"
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr "überfällige Bestellungen"
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr "ausstehende Aufträge"
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr "überfällige Aufträge"
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr "Suchergebnisse"
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr "Eine Sucheanfrage eingeben"
@@ -6185,23 +6117,23 @@ msgstr "Kategorie-Einstellungen"
msgid "Currency Settings"
msgstr "Währungseinstellungen"
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr "Basiswährung"
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr "Wechselkurse"
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr "Letzte Aktualisierung"
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr "Nie"
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr "Jetzt aktualisieren"
@@ -6209,112 +6141,28 @@ msgstr "Jetzt aktualisieren"
msgid "Server Settings"
msgstr "Server Einstellungen"
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr "Einstellungen"
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
-msgstr ""
+msgstr "Anmeldeeinstellungen"
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr "Benutzer-Einstellungen"
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr "Konto"
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr "Startseite"
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr "Suche"
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr "Labels"
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr "Berichte"
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr "Formulare"
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr "Einstellungen"
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr "InvenTree-Einstellungen"
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr "Server"
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr "Einloggen"
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr "Barcodes"
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr "Währungen"
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr "Berichte"
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr "Kategorien"
+msgstr "Anmelden"
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr "Teil-Einstellungen"
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr "Teil-Optionen"
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr "Teileimport"
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr "Teil importieren"
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr "Teil-Parametervorlage"
@@ -6327,32 +6175,97 @@ msgstr "Bestellungs-Einstellungen"
msgid "Report Settings"
msgstr "Berichts-Einstellungen"
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr "Kein Wert angegeben"
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr "Einstellungen ändern"
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr "Einstellungen"
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr "Allgemeine Einstellungen bearbeiten"
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr "Benutzereinstellungen bearbeiten"
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr "Keine Kategorie-Parametervorlagen gefunden"
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr "Vorlage bearbeiten"
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr "Vorlage löschen"
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr "Keine Teilparametervorlagen gefunden"
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr "Benutzer-Einstellungen"
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr "Kontoeinstellungen"
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr "Anzeigeeinstellungen"
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr "Sucheinstellungen"
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr "Auftrags-Einstellungen"
@@ -6361,139 +6274,155 @@ msgstr "Auftrags-Einstellungen"
msgid "Stock Settings"
msgstr "Bestands-Einstellungen"
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr "Kontoeinstellungen"
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr "Bearbeiten"
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr "Passwort ändern"
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr "Benutzername"
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr "Vorname"
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr "Nachname"
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
-msgstr ""
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
+msgstr "Die folgenden E-Mail-Adressen sind mit deinem Konto verknüpft:"
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
-msgstr ""
+msgstr "Verifiziert"
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
-msgstr ""
+msgstr "Nicht verifiziert"
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
-msgstr ""
+msgstr "Primär"
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
-msgstr ""
+msgstr "Als Primär Festlegen"
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
-msgstr ""
+msgstr "Verifikation erneut senden"
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:80
-msgid "Warning:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
-msgstr ""
+msgstr "Entfernen"
#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
-msgstr ""
+msgid "Warning:"
+msgstr "Warnung:"
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
+msgstr "Sie haben derzeit keine E-Mail-Adressen eingerichtet. Sie sollten wirklich eine hinzufügen, damit Sie Benachrichtigungen erhalten, ihr Konto Zurücksetzen können usw."
+
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
+msgstr "E-Mail-Adresse hinzufügen"
+
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
+msgstr "Geben Sie Ihre Email-Adresse ein"
+
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr "E-Mail-Adresse hinzufügen"
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
-msgstr ""
+msgstr "Soziale Konten"
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
-msgstr ""
+msgstr "Sie können sich mit einem der folgenden Drittanbieterkonten bei Ihrem Konto anmelden:"
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
-msgstr ""
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
+msgstr "Es sind keine sozialen Netzwerke mit Ihrem InvenTree-Konto verbunden"
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
-msgstr ""
+msgstr "Drittanbieter-Konto hinzufügen"
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr "Anzeige-Einstellungen"
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr "Design auswählen"
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr "Spracheinstellung"
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr "Sprache festlegen"
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr "%(lang_translated)s%% übersetzt"
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr "Keine Übersetzungen verfügbar"
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr "Sprache festlegen"
-#: templates/InvenTree/settings/user.html:214
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
+msgstr "Einige Sprachen sind nicht vollständig übersetzt"
+
+#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr "Zeige nur ausreichende"
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr "Auch unvollständige anzeigen"
+
+#: templates/InvenTree/settings/user.html:224
msgid "Help the translation efforts!"
msgstr "Hilf bei der Übersetzung!"
-#: templates/InvenTree/settings/user.html:215
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr "Die Übersetzung von InvenTree wird von Nutzern mit Crowdin betrieben. Wir ermutigen zur und freuen uns über jeden Mithilfe!"
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
-msgstr ""
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
+msgstr "Möchten Sie die ausgewählte E-Mail-Adresse wirklich entfernen?"
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
-msgstr "Formulareinstellungen"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr "Anzeige-Einstellungen"
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr "Stil auswählen"
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
+msgstr "Design auswählen"
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
@@ -6503,181 +6432,261 @@ msgstr "Startseite-Einstellungen"
msgid "Label Settings"
msgstr "Labeleinstellungen"
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr "Sucheinstellungen"
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr "InvenTree-Versionsinformationen"
-#: templates/about.html:22
-msgid "InvenTree Version"
-msgstr "InvenTree-Version"
-
-#: templates/about.html:27
-msgid "Development Version"
-msgstr "Entwicklungsversion"
-
-#: templates/about.html:30
-msgid "Up to Date"
-msgstr "Aktuell"
-
-#: templates/about.html:32
-msgid "Update Available"
-msgstr "Aktualisierung verfügbar"
-
-#: templates/about.html:42
-msgid "Commit Hash"
-msgstr "Commit-Hash"
-
-#: templates/about.html:49
-msgid "Commit Date"
-msgstr "Commit-Datum"
-
-#: templates/about.html:55
-msgid "InvenTree Documentation"
-msgstr "InvenTree-Dokumentation"
-
-#: templates/about.html:60
-msgid "API Version"
-msgstr "API-Version"
-
-#: templates/about.html:65
-msgid "Python Version"
-msgstr "Python-Version"
-
-#: templates/about.html:70
-msgid "Django Version"
-msgstr "Django-Version"
-
-#: templates/about.html:75
-msgid "View Code on GitHub"
-msgstr "Code auf GitHub ansehen"
-
-#: templates/about.html:80
-msgid "Credits"
-msgstr "Danksagung"
-
-#: templates/about.html:85
-msgid "Mobile App"
-msgstr "Mobile App"
-
-#: templates/about.html:90
-msgid "Submit Bug Report"
-msgstr "Fehlerbericht senden"
-
-#: templates/about.html:97 templates/clip.html:4
-msgid "copy to clipboard"
-msgstr "In die Zwischenablage kopieren"
-
-#: templates/about.html:97
-msgid "copy version information"
-msgstr "Versionsinformationen kopieren"
-
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Schliessen"
+#: templates/about.html:20
+msgid "InvenTree Version"
+msgstr "InvenTree-Version"
+
+#: templates/about.html:25
+msgid "Development Version"
+msgstr "Entwicklungsversion"
+
+#: templates/about.html:28
+msgid "Up to Date"
+msgstr "Aktuell"
+
+#: templates/about.html:30
+msgid "Update Available"
+msgstr "Aktualisierung verfügbar"
+
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr "Commit-Hash"
+
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr "Commit-Datum"
+
+#: templates/about.html:53
+msgid "InvenTree Documentation"
+msgstr "InvenTree-Dokumentation"
+
+#: templates/about.html:58
+msgid "API Version"
+msgstr "API-Version"
+
+#: templates/about.html:63
+msgid "Python Version"
+msgstr "Python-Version"
+
+#: templates/about.html:68
+msgid "Django Version"
+msgstr "Django-Version"
+
+#: templates/about.html:73
+msgid "View Code on GitHub"
+msgstr "Code auf GitHub ansehen"
+
+#: templates/about.html:78
+msgid "Credits"
+msgstr "Danksagung"
+
+#: templates/about.html:83
+msgid "Mobile App"
+msgstr "Mobile App"
+
+#: templates/about.html:88
+msgid "Submit Bug Report"
+msgstr "Fehlerbericht senden"
+
+#: templates/about.html:95 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr "In die Zwischenablage kopieren"
+
+#: templates/about.html:95
+msgid "copy version information"
+msgstr "Versionsinformationen kopieren"
+
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
-msgstr ""
+msgid "Confirm Email Address"
+msgstr "E-Mail-Adresse bestätigen"
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
-msgstr ""
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
+msgstr "Bitte bestätigen Sie, dass %(email)s eine E-Mail Adresse für den Benutzer %(user_display)s ist."
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
-msgstr ""
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
+msgstr "Dieser E-Mail Bestätigungslink ist abgelaufen oder ungültig. Bitte fordern Sie eine neue E-Mail Bestätigung an."
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
-msgstr ""
+msgstr "Einloggen"
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
-msgstr ""
+msgstr "Bitte melden Sie sich mit einem Ihrer bestehenden Drittkonten an oder registrieren Sie sich für ein Konto und melden Sie sich unten an:"
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
-msgstr ""
+msgstr "Wenn Sie noch kein Konto erstellt haben, dann bitteregistrieren Sie sich zuerst."
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
-msgstr ""
+msgstr "Passwort vergessen?"
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr "InvenTree Demo-Instanz"
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr "Für Anmeldedetails hier klicken"
+
+#: templates/account/login.html:55
msgid "or use SSO"
-msgstr ""
+msgstr "oder SSO verwenden"
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
-msgstr ""
+msgstr "Ausloggen"
#: templates/account/logout.html:10
msgid "Are you sure you want to sign out?"
-msgstr ""
+msgstr "Möchtest Sie sich wirklich abmelden?"
+
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr "Zurück zur Website"
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
-msgstr ""
+msgstr "Passwort zurücksetzen"
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
-msgstr ""
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
+msgstr "Passwort vergessen? Geben Sie Ihre E-Mail-Adresse ein und wir senden Ihnen eine E-Mail mit der Sie das Passwort zurücksetzen können."
#: templates/account/password_reset.html:23
msgid "Reset My Password"
-msgstr ""
+msgstr "Mein Passwort zurücksetzen"
#: templates/account/password_reset.html:27 templates/account/signup.html:36
msgid "This function is currently disabled. Please contact an administrator."
-msgstr ""
+msgstr "Diese Funktion ist derzeit deaktiviert. Bitte kontaktieren Sie einen Administrator."
#: templates/account/password_reset_from_key.html:7
msgid "Bad Token"
-msgstr ""
+msgstr "Ungültiger Schlüssel"
#: templates/account/password_reset_from_key.html:11
#, python-format
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
-msgstr ""
+msgstr "Der Link zum Zurücksetzen des Kennworts war ungültig, da er bereits verwendet wurde. Bitte fordern Sie eine neue Passwortwiederherstellung an."
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
-msgstr ""
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
+msgstr "Passwort ändern"
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
-msgstr ""
+msgstr "Ihr Passwort wurde geändert."
#: templates/account/signup.html:11 templates/account/signup.html:22
msgid "Sign Up"
-msgstr ""
+msgstr "Anmelden"
#: templates/account/signup.html:13
#, python-format
msgid "Already have an account? Then please sign in."
-msgstr ""
+msgstr "Haben Sie bereits ein Konto? Dann melden Sie sich bitte an."
#: templates/account/signup.html:27
msgid "Or use a SSO-provider for signup"
-msgstr ""
+msgstr "Oder verwenden Sie einen SSO-Anbieter für die Anmeldung"
+
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr "Im Administrationsbereich anzeigen"
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr "Server-Neustart erforderlich"
+
+#: templates/base.html:99
+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:99
+msgid "Contact your system administrator for further information"
+msgstr "Bitte kontaktieren Sie Ihren Administrator für mehr Informationen"
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr "Für die folgenden Bauaufträge werden Lagerartikel benötigt"
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr "Bauauftrag %(build)s - %(quantity)s x %(part)s bauen"
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr "Klicken Sie auf den folgenden Link, um diesen Bauauftrag anzuzeigen"
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr "Bei den folgenden Teilen gibt es wenige Lagerartikel"
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr "Benötigte Menge"
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr "Verfügbar"
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr "Sie erhalten diese E-Mail, weil Sie Benachrichtigungen für diesen Teil abonniert haben "
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr "InvenTree-Version"
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr " Der verfügbare Bestand für %(part)s ist unter das konfigurierte Mindestniveau gefallen"
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr "Klicken Sie auf den folgenden Link, um diesen Teil anzuzeigen"
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr "Gesamtbestand"
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr "Mindestmenge"
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
@@ -6697,7 +6706,7 @@ msgstr "Das Bild darf nicht größer als die maximal-erlaubte Größe sein"
#: templates/js/report.js:47 templates/js/translated/report.js:67
msgid "items selected"
-msgstr "BestandsObjekt ausgewählt"
+msgstr "Lagerartikel ausgewählt"
#: templates/js/report.js:55 templates/js/translated/report.js:75
msgid "Select Report Template"
@@ -6708,13 +6717,13 @@ msgid "Select Test Report Template"
msgstr "Test-Bericht-Vorlage auswählen"
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
-msgstr "BestandsObjekte auswählen"
+msgstr "Lagerartikel auswählen"
#: templates/js/report.js:99 templates/js/translated/report.js:119
msgid "Stock item(s) must be selected before printing reports"
-msgstr "BestandsObjekt(e) müssen vor dem Berichtsdruck ausgewählt werden"
+msgstr "Lagerartikel müssen vor dem Berichtsdruck ausgewählt werden"
#: templates/js/report.js:116 templates/js/report.js:169
#: templates/js/report.js:223 templates/js/report.js:277
@@ -6726,7 +6735,7 @@ msgstr "Keine Berichte gefunden"
#: templates/js/report.js:117 templates/js/translated/report.js:137
msgid "No report templates found which match selected stock item(s)"
-msgstr "Keine Berichtsvorlagen für ausgewählte BestandsObjekt(e) gefunden"
+msgstr "Keine Berichtsvorlagen für ausgewählte Lagerartikel gefunden"
#: templates/js/report.js:152 templates/js/translated/report.js:172
msgid "Select Builds"
@@ -6740,7 +6749,7 @@ msgstr "Bauauftrag muss vor dem Berichtsdruck ausgewählt werden"
msgid "No report templates found which match selected build(s)"
msgstr "Keine Berichtvorlagen für ausgewählten Bauauftrag gefunden"
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Teile auswählen"
@@ -6774,59 +6783,59 @@ msgstr "Aufträge auswählen"
msgid "Sales Order(s) must be selected before printing report"
msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden"
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr "Keine Antwort"
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr "keine Antwort vom InvenTree Server"
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr "Fehler 400: Fehlerhafte Anfrage"
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr "Fehler-Code 400 zurückgegeben"
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr "Fehler 401: Nicht Angemeldet"
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr "Authentication Kredentials nicht angegeben"
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr "Fehler 403: keine Berechtigung"
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr "Fehlende Berechtigung für diese Aktion"
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr "Fehler 404: Ressource nicht gefunden"
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr "Die angefragte Ressource kann auf diesem Server nicht gefunden werden"
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr "Fehler 408: Zeitüberschreitung"
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr "Verbindungszeitüberschreitung bei der Datenanforderung"
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr "Unbehandelter Fehler-Code"
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr "Fehler-Code"
@@ -6834,292 +6843,364 @@ msgstr "Fehler-Code"
msgid "No attachments found"
msgstr "Keine Anhänge gefunden"
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr "Hochladedatum"
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr "Anhang bearbeiten"
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr "Anhang löschen"
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr "Hier den Barcode scannen"
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr "Barcode-Daten eingeben"
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr "Barcode"
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr "Optionale Notizen zu Bestandsübertragung eingeben"
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr "Notizen eingeben"
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr "Server-Fehler"
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr "Unbekannte Antwort von Server erhalten"
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr "Ungültige Antwort von Server"
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr "Barcode unterhalb scannen"
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr "Barcode scannen"
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr "keine URL in der Antwort"
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
-msgstr "Barcode mit BestandsObjekt verknüpfen"
+msgstr "Barcode mit Lagerartikel verknüpfen"
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
-msgstr "Dadurch wird die Verknüpfung zwischen diesem BestandsObjekt und dem Barcode entfernt"
+msgstr "Dadurch wird die Verknüpfung zwischen diesem Lagerartikel und dem Barcode entfernt"
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr "Entfernen"
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
-msgstr "BestandsObjekt entfernen"
+msgstr "Lagerartikel entfernen"
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
-msgstr "BestandsObjekte in Lagerort buchen"
+msgstr "Lagerartikel in Lagerort buchen"
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr "Einbuchen"
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr "Fehler bei Bestandsübertragung"
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
-msgstr "BestandsObjekte bereits gescannt"
+msgstr "Lagerartikel bereits gescannt"
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
-msgstr "BestandsObjekt besteht bereits in diesem Lagerort"
+msgstr "Lagerartikel besteht bereits in diesem Lagerort"
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
-msgstr "BestandsObjekt hinzugefügt"
+msgstr "Lagerartikel hinzugefügt"
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
-msgstr "Barcode entspricht keinem BestandsObjekt"
+msgstr "Barcode entspricht keinem Lagerartikel"
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr "In Lagerorten buchen"
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr "Barcode entspricht keinem Lagerort"
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr "Ersatzteil entfernen"
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr "Sind Sie sicher, dass Sie dieses Ersatzteil entfernen möchten?"
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr "Ersatzteil entfernen"
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr "Ersatzteil hinzufügen"
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr "Stücklisten Ersatzteile bearbeiten"
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr "Ersatzteile verfügbar"
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr "Varianten erlaubt"
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr "Unterbaugruppe öffnen"
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
-msgstr "Verfügbar"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
+msgstr "Ersatzteile"
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr "Kaufpreisspanne"
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr "Durchschnittlicher Kaufpreis"
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr "Stückliste anzeigen"
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr "Aktionen"
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr "Stücklisten-Position kontrollieren"
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr "Diese Position wurde kontrolliert"
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr "Ersatzteile bearbeiten"
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr "Stücklisten-Position bearbeiten"
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr "Stücklisten-Position löschen"
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr "Keine Stücklisten-Position(en) gefunden"
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
-msgstr "Bauauftrag bearbeiten"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
+msgstr "Sind Sie sicher, dass Sie diese Stücklisten-Position löschen wollen?"
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr "Bauauftrag erstellen"
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr "Bestand von Endpordukt zurücknehmen"
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr "Endprodukt fertigstellen"
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr "Endprodukt entfernen"
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr "Keine Allokationen für Bauauftrag gefunden"
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr "Standort nicht angegeben"
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr "Bestands-Zuordnung bearbeiten"
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr "Bestands-Zuordnung löschen"
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr "Zuordnung bearbeiten"
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr "Zuordnung entfernen"
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr "benötigtes Teil"
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr "Geerbt von übergeordneter Stückliste"
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr "Bauauftrag bearbeiten"
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr "Bauauftrag erstellen"
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr "Lagerartikel zu diesem Endprodukt zuweisen"
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr "Bestand von Endpordukt zurücknehmen"
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr "Endprodukt fertigstellen"
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr "Endprodukt entfernen"
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr "Sind Sie sicher, dass sie alle Lagerartikel von diesem Bauauftrag entfernen möchten?"
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr "Lagerartikel zurücknehmen"
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr "Endprodukte auswählen"
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr "Mindestens ein Endprodukt muss ausgewählt werden"
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr "Endprodukt"
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr "Endprodukte fertigstellen"
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr "Keine Allokationen für Bauauftrag gefunden"
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr "Standort nicht angegeben"
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr "Keine aktiven Endprodukte gefunden"
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr "Bestands-Zuordnung bearbeiten"
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr "Bestands-Zuordnung löschen"
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr "Zuordnung bearbeiten"
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr "Zuordnung entfernen"
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr "Ersatzteile verfügbar"
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr "Anzahl pro"
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr "Zugeordnet"
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
-msgstr "Lagerbestand bauen"
+msgstr "Bestand bauen"
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr "Bestand bestellen"
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
-msgstr "Lagerbestand zuweisen"
+msgstr "Bestand zuweisen"
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr "Anzahl für Bestandszuordnung eingeben"
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr "Sie müssen mindestens ein Teil auswählen"
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr "Wählen Sie den Quellort aus (leer lassen um von allen Standorten zu nehmen)"
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr "Bestandszuordnung bestätigen"
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
-msgstr "Lagerbestand für Bauauftrag zuweisen"
+msgstr "Lagerartikel für Bauauftrag zuweisen"
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr "Keine passenden Lagerstandorte"
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr "Keine passenden Lagerbestände"
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr "Keine Bauaufträge passen zur Anfrage"
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr "Auswählen"
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr "Bauauftrag ist überfällig"
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr "Keine Benutzerinformation"
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr "Keine Information"
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr "Keine Teile zugeordnet zu"
@@ -7127,7 +7208,7 @@ msgstr "Keine Teile zugeordnet zu"
msgid "Add Manufacturer"
msgstr "Hersteller hinzufügen"
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr "Herstellerteil hinzufügen"
@@ -7139,97 +7220,97 @@ msgstr "Herstellerteil ändern"
msgid "Delete Manufacturer Part"
msgstr "Herstellerteil löschen"
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr "Zulieferer hinzufügen"
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr "Zuliefererteil hinzufügen"
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr "Zuliefererteil bearbeiten"
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr "Zuliefererteil entfernen"
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr "Firma bearbeiten"
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr "Neue Firma hinzufügen"
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr "Teile geliefert"
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr "Hersteller-Teile"
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr "Keine Firmeninformation gefunden"
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr "Die folgenden Herstellerteile werden gelöscht"
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr "Herstellerteile löschen"
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr "Keine Herstellerteile gefunden"
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr "Vorlagenteil"
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr "Baugruppe"
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr "Keine Parameter gefunden"
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr "Parameter bearbeiten"
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr "Parameter löschen"
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr "Keine Zuliefererteile gefunden"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr "ja"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr "nein"
@@ -7237,57 +7318,61 @@ msgstr "nein"
msgid "Select filter"
msgstr "Filter auswählen"
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr "Daten neu laden"
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr "Filter hinzufügen"
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr "Filter entfernen"
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr "Filter anlegen"
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr "Aktion verboten"
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr "Erstellvorgang nicht erlaubt"
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr "Updatevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr "Löschvorgang nicht erlaubt"
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr "Anzeigevorgang nicht erlaubt"
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr "Gib eine gültige Nummer ein"
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr "Fehler in Formular"
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr "Keine Ergebnisse gefunden"
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr "Suche"
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr "Eingabe leeren"
@@ -7301,7 +7386,7 @@ msgstr "NEIN"
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
-msgstr "BestandsObjekt(e) müssen ausgewählt sein bevor Labels gedruckt werden können"
+msgstr "Lagerartikel müssen ausgewählt sein bevor Labels gedruckt werden können"
#: templates/js/translated/label.js:48 templates/js/translated/label.js:98
#: templates/js/translated/label.js:153
@@ -7310,7 +7395,7 @@ msgstr "Keine Labels gefunden"
#: templates/js/translated/label.js:49
msgid "No labels found which match selected stock item(s)"
-msgstr "Keine Labels die zu BestandsObjekt(e) passen gefunden"
+msgstr "Keine Labels die zu Lagerartikel passen gefunden"
#: templates/js/translated/label.js:80
msgid "Select Stock Locations"
@@ -7334,7 +7419,7 @@ msgstr "Keine Labels zu den ausgewählten Teilen gefunden"
#: templates/js/translated/label.js:228
msgid "stock items selected"
-msgstr "BestandsObjekte ausgewählt"
+msgstr "Lagerartikel ausgewählt"
#: templates/js/translated/label.js:236
msgid "Select Label"
@@ -7344,62 +7429,62 @@ msgstr "Label auswählen"
msgid "Select Label Template"
msgstr "Label-Vorlage auswählen"
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr "Abbrechen"
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr "Abschicken"
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr "Formulartitel"
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr "Warte auf Server..."
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr "Fehler-Informationen anzeigen"
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr "Akzeptieren"
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr "Lade Daten"
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr "ungültige Antwort vom Server"
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr "Formulardaten fehlen bei Serverantwort"
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr "Formulardaten fehlerhaft"
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr "JSON Antwort enthält keine Formulardaten"
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr "Fehler 400: Ungültige Anfrage"
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr "Fehler 400 von Server erhalten"
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr "Fehler bei Formulardaten-Anfrage"
@@ -7407,35 +7492,35 @@ msgstr "Fehler bei Formulardaten-Anfrage"
msgid "Company ID"
msgstr "Firmen-ID"
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr "Bestands-ID"
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr "Standort-ID"
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr "Bauauftrag-ID"
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr "Teil-ID"
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr "Bestell-ID"
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr "Kategorie-ID"
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr "Herstellerteil-ID"
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr "Zuliefererteil-ID"
@@ -7447,567 +7532,632 @@ msgstr "Kunden hinzufügen"
msgid "Create Sales Order"
msgstr "Auftrag anlegen"
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr "Bestellung exportieren"
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr "Format"
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr "Dateiformat auswählen"
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr "Positionen auswählen"
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr "Mindestens eine Position muss ausgewählt werden"
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr "Zu erhaltende Menge"
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr "Status"
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr "Bestellnummer"
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr "Bestellt"
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr "Empfangen"
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr "Empfang der Teile bestätigen"
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr "Bestellpositionen erhalten"
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr "Keine Bestellungen gefunden"
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr "Bestellung überfällig"
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr "Position bearbeiten"
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr "Keine Positionen gefunden"
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr "Summe"
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr "Stück-Preis"
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr "Gesamtpreis"
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr "Position bearbeiten"
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr "Position löschen"
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr "Position empfangen"
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr "Keine Aufträge gefunden"
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr "Ungültiger Kunde"
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr "Keine Allokationen für Verkaufsaufträge gefunden"
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr "Bestandszuordnung bearbeiten"
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr "Bestands-Zuordnung löschen"
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr "Lagerstandort nicht angegeben"
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr "Erledigt"
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr "Seriennummern zuweisen"
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
-msgstr "Lagerbestand kaufen"
+msgstr "Bestand kaufen"
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr "Preis berechnen"
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr "Position löschen "
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
-msgstr "Lagerbestand zuweisen"
+msgstr "Bestand zuweisen"
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr "Stückpreis aktualisieren"
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr "Keine passenden Positionen gefunden"
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr "Teileigenschaften"
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr "Erstellungsoptionen für Teile"
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr "Einstellungen für Teilkopien"
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr "Zuliefereroptionen"
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr "Teil-Kategorie hinzufügen"
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr "Anfänglichen Bestand erstellen"
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr "Anfänglichen Bestand für dieses Teil erstellen"
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr "Start-Bestandsmenge"
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr "Menge des anfänglichen Bestands für dieses Teil angeben"
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr "Zielstandort auswählen"
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr "Kategorieparameter kopieren"
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr "Parametervorlagen aus der ausgewählten Bauteilkategorie kopieren"
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr "Zuliefererdaten hinzufügen"
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr "Erstelle ersten Lieferanten für dieses Teil"
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr "Bild kopieren"
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr "Bild vom Originalteil kopieren"
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr "Stückliste kopieren"
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr "Stückliste vom Originalteil kopieren"
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr "Parameter kopieren"
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr "Parameterdaten vom Originalteil kopieren"
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr "Übergeordnete Teilkategorie"
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr "Teil bearbeiten"
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr "Teil bearbeitet"
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert"
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr "Sie haben Benachrichtigungen für dieses Teil abonniert"
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr "Benachrichtigungen für dieses Teil abonnieren"
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr "Sie haben Benachrichtigungen für dieses Teil abgemeldet"
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr "Nachverfolgbares Teil"
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr "virtuelles Teil"
-#: templates/js/translated/part.js:435
-msgid "Starred part"
-msgstr "Favoritenteil"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
+msgstr "Abonnierter Teil"
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr "Verkäufliches Teil"
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr "Keine Varianten gefunden"
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr "Keine Teile gefunden"
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr "Keine Kategorie"
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr "Bestand niedrig"
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr "Listenansicht"
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr "Rasteransicht"
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr "Baumansicht"
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr "Abonnierte Kategorie"
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr "Pfad"
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr "Keine zur Anfrage passenden Testvorlagen"
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr "Testergebnis bearbeiten"
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr "Testergebnis löschen"
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr "Dieses Testergebnis ist für ein Hauptteil"
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr "Testergebnis-Vorlage bearbeiten"
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr "Testergebnis-Vorlage löschen"
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr "Keine ${human_name} Informationen gefunden"
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr "${human_name} bearbeiten"
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr "${human_name} löschen"
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr "Einzelpreis"
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr "Einzelpreisdifferenz"
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr "Lagerartikel serialisieren"
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr "Übergeordneter Lagerort"
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr "Neuer Lagerstandort"
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr "Ausgangsmenge für diesen Lagerartikel eingeben"
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr "Seriennummern für neue Lagerartikel eingeben (oder leer lassen)"
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr "Neuer Lagerartikel erstellt"
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr "Mehrere Lagerartikel erstellt"
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr "Bestand exportieren"
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr "Einschließlich Unterstandorte"
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
-msgstr "Bestand in untergeordneten Lagerorten einschließen"
+msgstr "Lagerartikel in untergeordneten Lagerorten einschließen"
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr "Bestand verschieben"
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr "Verschieben"
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr "Bestand zählen"
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr "Anzahl"
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr "Bestand entfernen"
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr "Entfernen"
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr "Bestand hinzufügen"
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr "Hinzufügen"
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr "Bestand löschen"
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr "Menge von serialisiertem Bestand kann nicht bearbeitet werden"
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr "Bestandsanzahl angeben"
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
-msgstr "Sie müssen mindestens einen Lagerbestand auswählen"
+msgstr "Sie müssen mindestens einen Lagerartikel auswählen"
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr "ERFOLGREICH"
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr "FEHLGESCHLAGEN"
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr "KEIN ERGEBNIS"
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr "Testergebnis hinzufügen"
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr "Keine Testergebnisse gefunden"
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr "Testdatum"
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr "In Arbeit"
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
-msgstr "In BestandsObjekt installiert"
+msgstr "In Lagerartikel installiert"
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr "an Kunde versand"
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr "Auftrag zugewiesen"
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr "Kein Lagerort gesetzt"
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
-msgstr "BestandsObjekt wird produziert"
+msgstr "Lagerartikel wird produziert"
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
-msgstr "BestandsObjekt wurde Auftrag zugewiesen"
+msgstr "Lagerartikel wurde Auftrag zugewiesen"
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
-msgstr "BestandsObjekt wurde Kunden zugewiesen"
+msgstr "Lagerartikel wurde Kunden zugewiesen"
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
-msgstr "BestandsObjekt ist abgelaufen"
+msgstr "Lagerartikel ist abgelaufen"
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
-msgstr "BestandsObjekt läuft demnächst ab"
+msgstr "Lagerartikel läuft demnächst ab"
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
-msgstr "BestandsObjekt zugewiesen"
+msgstr "Lagerartikel zugewiesen"
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
-msgstr "BestandsObjekt in anderem Element verbaut"
+msgstr "Lagerartikel in anderem Element verbaut"
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
-msgstr "BestandsObjekt abgewiesen"
+msgstr "Lagerartikel abgewiesen"
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
-msgstr "BestandsObjekt verloren"
+msgstr "Lagerartikel verloren"
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
-msgstr "BestandsObjekt zerstört"
+msgstr "Lagerartikel zerstört"
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr "gelöscht"
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr "Inventur"
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr "Zuliefererteil nicht angegeben"
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
-msgstr "Keine zur Anfrage passenden BestandsObjekte"
+msgstr "Keine zur Anfrage passenden Lagerartikel"
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr "Teile"
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr "lose"
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr "Lagerorte"
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr "unbekannter Lagerort"
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr "Status setzen"
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr "Status Code setzen"
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr "Status Code muss ausgewählt werden"
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr "Ungültiges Datum"
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr "Standort nicht mehr vorhanden"
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr "Bestellung existiert nicht mehr"
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr "Kunde existiert nicht mehr"
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
-msgstr "Lagerbestand existiert nicht mehr"
+msgstr "Lagerartikel existiert nicht mehr"
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr "Hinzugefügt"
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr "Entfernt"
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr "Tracking-Eintrag bearbeiten"
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr "Tracking-Eintrag löschen"
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr "Keine installierten Elemente"
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr "Seriennummer"
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
-msgstr "Lagerbestand entfernen"
+msgstr "Lagerartikel entfernen"
#: templates/js/translated/table_filters.js:56
msgid "Trackable Part"
@@ -8025,265 +8175,279 @@ msgstr "überprüft"
msgid "Allow Variant Stock"
msgstr "Bestand an Varianten zulassen"
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr "Unter-Lagerorte einschließen"
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr "Lagerorte einschließen"
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr "Unterkategorien einschließen"
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr "Abonniert"
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr "Hat Seriennummer"
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr "Seriennummer >="
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr "Seriennummer größer oder gleich"
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr "Seriennummer <="
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr "Seriennummern kleiner oder gleich"
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr "Seriennummer"
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr "Losnummer"
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr "Aktive Teile"
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr "Bestand aktiver Teile anzeigen"
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr "Teil ist eine Baugruppe"
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr "Ist zugeordnet"
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr "Teil wurde zugeordnet"
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr "Bestand in Unter-Lagerorten einschließen"
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
-msgstr "Zeige aufgebrauchte BestandsObjekte"
+msgstr "Zeige aufgebrauchte Lagerartikel"
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr "Zeige Objekte welche im Lager sind"
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr "In Arbeit"
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr "Elemente, die in Produktion sind, anzeigen"
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr "Varianten einschließen"
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
-msgstr "BestandsObjekte für Teil-Varianten einschließen"
+msgstr "Lagerartikel für Teil-Varianten einschließen"
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr "Installiert"
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
-msgstr "BestandsObjekte, die in anderen Elementen verbaut sind, anzeigen"
+msgstr "Lagerartikel, die in anderen Elementen verbaut sind, anzeigen"
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr "zeige zu Kunden zugeordnete Einträge"
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr "Status"
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr "Hat Einkaufspreis"
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr "Bestand mit Einkaufspreis anzeigen"
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
-msgstr "Zeige abgelaufene BestandsObjekte"
+msgstr "Zeige abgelaufene Lagerartikel"
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr "Bestand, der bald ablaufen, anzeigen"
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr "Bauauftrags-Status"
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr "Bestellstatus"
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr "ausstehend"
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr "Teile in Unterkategorien einschließen"
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr "Hat IPN"
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr "Teil hat Interne Teilenummer"
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr "Aktive Teile anzeigen"
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
-msgstr "verfügbarer Lagerbestand"
+msgstr "verfügbarer Bestand"
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr "Favorit"
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr "Käuflich"
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr "Lade Daten"
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr "Zeilen pro Seite"
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr "zeige"
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr "bis"
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr "von"
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr "Zeilen"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr "Suche"
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr "Keine passenden Ergebnisse gefunden"
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr "Zeige/Verstecke Pagination"
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr "Neu laden"
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr "umschalten"
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr "Spalten"
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr "Alle"
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr "Navigation ein-/ausklappen"
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr "Kaufen"
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr "Verkaufen"
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr "Admin"
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr "Ausloggen"
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr "Einloggen"
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr "Über InvenTree"
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr "InvenTree Demo-Modus"
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr "QR Daten nicht angegeben"
#: templates/registration/logged_out.html:6
msgid "You were logged out successfully."
-msgstr ""
+msgstr "Sie wurden erfolgreich ausgeloggt."
#: templates/registration/logged_out.html:8
msgid "Log in again"
-msgstr ""
+msgstr "Erneut einloggen"
+
+#: templates/stats.html:9
+msgid "Server"
+msgstr "Server"
#: templates/stats.html:13
msgid "Instance Name"
@@ -8338,54 +8502,50 @@ msgid "Export Stock Information"
msgstr "Aktuellen Bestand exportieren"
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr "Neues BestandsObjekt"
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr "Barcode Aktionen"
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr "Test-Berichte drucken"
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr "Bestands-Einstellungen "
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
-msgstr "Zu ausgewählten BestandsObjekten hinzufügen"
+msgstr "Zu ausgewählten Lagerartikeln hinzufügen"
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
-msgstr "Von ausgewählten BestandsObjekten entfernen"
+msgstr "Von ausgewählten Lagerartikeln entfernen"
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
-msgstr "Inventur für gewählte BestandsObjekte"
+msgstr "Inventur für gewählte Lagerartikel"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
-msgstr "Ausgewählte BestandsObjekte verschieben"
+msgstr "Ausgewählte Lagerartikel verschieben"
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr "Bestand verschieben"
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr "Ausgewählte Positionen bestellen"
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr "Status ändern"
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr "Status ändern"
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr "Ausgewählte Positionen löschen"
@@ -8421,35 +8581,35 @@ msgstr "Berechtigungen"
msgid "Important dates"
msgstr "wichtige Daten"
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr "Berechtigung geändert"
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr "Gruppe"
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr "Ansicht"
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr "Berechtigung Einträge anzuzeigen"
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr "Berechtigung Einträge zu erstellen"
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr "Ändern"
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr "Berechtigungen Einträge zu ändern"
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr "Berechtigung Einträge zu löschen"
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.mo b/InvenTree/locale/el/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..dbe42ffd5b
Binary files /dev/null and b/InvenTree/locale/el/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/el/LC_MESSAGES/django.po b/InvenTree/locale/el/LC_MESSAGES/django.po
index 880c7b29d6..b68d49ba34 100644
--- a/InvenTree/locale/el/LC_MESSAGES/django.po
+++ b/InvenTree/locale/el/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Greek\n"
"Language: el_GR\n"
@@ -33,260 +33,268 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr ""
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr ""
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr ""
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr ""
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr ""
@@ -302,196 +310,196 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -535,599 +543,574 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr ""
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr ""
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr ""
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr ""
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr ""
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr ""
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr ""
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr ""
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr ""
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr ""
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr ""
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr ""
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr ""
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr ""
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr ""
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr ""
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr ""
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr ""
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr ""
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr ""
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr ""
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr ""
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr ""
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr ""
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr ""
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr ""
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr ""
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
+#: build/tasks.py:92
+msgid "Stock required for build order"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
msgstr ""
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
msgstr ""
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr ""
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr ""
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr ""
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr ""
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr ""
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2348,7 +2280,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
@@ -2376,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2385,8 +2317,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,46 +2466,42 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2965,20 +2885,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/en/LC_MESSAGES/django.po b/InvenTree/locale/en/LC_MESSAGES/django.po
index 90d2d28be0..cf4017d955 100644
--- a/InvenTree/locale/en/LC_MESSAGES/django.po
+++ b/InvenTree/locale/en/LC_MESSAGES/django.po
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-09-12 13:15+0000\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME \n"
"Language-Team: LANGUAGE \n"
@@ -34,250 +34,268 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:111 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:169 build/forms.py:185 build/forms.py:227
-#: order/forms.py:30 order/forms.py:41 order/forms.py:52 order/forms.py:63
-#: order/forms.py:74 part/forms.py:108 templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:127
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:128
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:160 templates/registration/login.html:76
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:161
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:168
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:169
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr ""
-#: InvenTree/forms.py:201
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/forms.py:230
+msgid "Email (again)"
+msgstr ""
+
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
+msgid "You must type the same email each time."
+msgstr ""
+
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:430
-#: stock/views.py:1363
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1826
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993
-#: common/models.py:994 part/models.py:2051
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1690
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr ""
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:414
-#: label/models.py:112 part/models.py:658 part/models.py:2212
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/InvenTree/search.html:137 templates/InvenTree/search.html:289
-#: templates/js/translated/company.js:636 templates/js/translated/part.js:466
-#: templates/js/translated/part.js:603 templates/js/translated/part.js:1130
-#: templates/js/translated/stock.js:1483
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:187
-#: build/templates/build/detail.html:24 company/models.py:353
-#: company/models.py:569 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:681
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/search.html:144 templates/InvenTree/search.html:224
-#: templates/InvenTree/search.html:296
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:230 templates/js/translated/build.js:891
-#: templates/js/translated/build.js:1179 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:546
-#: templates/js/translated/company.js:834 templates/js/translated/order.js:341
-#: templates/js/translated/order.js:486 templates/js/translated/order.js:710
-#: templates/js/translated/part.js:525 templates/js/translated/part.js:713
-#: templates/js/translated/part.js:902 templates/js/translated/part.js:1142
-#: templates/js/translated/part.js:1210 templates/js/translated/stock.js:840
-#: templates/js/translated/stock.js:1495 templates/js/translated/stock.js:1540
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr ""
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2454
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:523
+#: InvenTree/settings.py:664
msgid "German"
msgstr ""
-#: InvenTree/settings.py:524
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:525
+#: InvenTree/settings.py:666
msgid "English"
msgstr ""
-#: InvenTree/settings.py:526
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:527
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr ""
-#: InvenTree/settings.py:528
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr ""
@@ -293,196 +311,196 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:126
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:610
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:659
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:704
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:910 templates/navbar.html:105
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -526,589 +544,574 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr ""
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:119
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:962 templates/js/translated/order.js:358
-#: templates/js/translated/order.js:728
-msgid "Target Date"
-msgstr ""
-
-#: build/forms.py:43 build/models.py:277
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/forms.py:266 build/models.py:1402
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/auto_allocate.html:17
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1025
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:120 order/forms.py:142 order/forms.py:159 order/models.py:712
-#: order/models.py:964 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34
-#: order/templates/order/sales_order_detail.html:201
-#: order/templates/order/sales_order_detail.html:208
-#: order/templates/order/sales_order_detail.html:293
-#: order/templates/order/sales_order_detail.html:365 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2356
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:973 part/templates/part/detail.html:1059
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:245
-#: templates/js/translated/build.js:298 templates/js/translated/build.js:629
-#: templates/js/translated/build.js:1189
-#: templates/js/translated/model_renderers.js:59
-#: templates/js/translated/order.js:522 templates/js/translated/order.js:824
-#: templates/js/translated/part.js:1317 templates/js/translated/part.js:1440
-#: templates/js/translated/part.js:1518 templates/js/translated/stock.js:1675
-#: templates/js/translated/stock.js:1850
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr ""
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:114 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr ""
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr ""
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr ""
-
-#: build/forms.py:169
-msgid "Confirm stock allocation"
-msgstr ""
-
-#: build/forms.py:186
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:210 build/templates/build/auto_allocate.html:18
-#: order/serializers.py:216 order/serializers.py:275 stock/forms.py:280
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/InvenTree/search.html:260 templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:283
-#: templates/js/translated/build.js:643 templates/js/translated/order.js:809
-#: templates/js/translated/part.js:174 templates/js/translated/stock.js:203
-#: templates/js/translated/stock.js:329 templates/js/translated/stock.js:942
-#: templates/js/translated/stock.js:1567
-msgid "Location"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Location of completed parts"
-msgstr ""
-
-#: build/forms.py:215 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:555
-#: order/serializers.py:230 order/templates/order/receive_parts.html:24
-#: stock/templates/stock/item_base.html:422 templates/InvenTree/search.html:252
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:925
-#: templates/js/translated/order.js:345 templates/js/translated/order.js:715
-#: templates/js/translated/stock.js:917 templates/js/translated/stock.js:1644
-#: templates/js/translated/stock.js:1866
-msgid "Status"
-msgstr ""
-
-#: build/forms.py:216
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:223
-msgid "Confirm incomplete"
-msgstr ""
-
-#: build/forms.py:224
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:227
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:252
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:252 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/forms.py:266
-msgid "Select quantity of stock to allocate"
-msgstr ""
-
-#: build/models.py:113
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:117 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:260
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr ""
-#: build/models.py:118 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:185
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:178
+#: build/models.py:198
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:179 order/models.py:246 order/models.py:539
-#: order/models.py:719 order/templates/order/sales_order_detail.html:360
-#: part/models.py:2365 part/templates/part/bom_upload/match_parts.html:30
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
+#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:237 templates/js/translated/build.js:718
-#: templates/js/translated/build.js:1183 templates/js/translated/order.js:517
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr ""
-#: build/models.py:190
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:199 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:200
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:205 build/templates/build/auto_allocate.html:16
-#: build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:704
-#: order/models.py:772 order/models.py:837
-#: order/templates/order/order_wizard/select_parts.html:32
-#: order/templates/order/receive_parts.html:19
-#: order/templates/order/sales_order_detail.html:345 part/models.py:297
-#: part/models.py:1996 part/models.py:2012 part/models.py:2031
-#: part/models.py:2049 part/models.py:2128 part/models.py:2250
-#: part/models.py:2340 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/InvenTree/search.html:210
-#: templates/js/translated/barcode.js:384 templates/js/translated/bom.js:203
-#: templates/js/translated/build.js:609 templates/js/translated/build.js:896
-#: templates/js/translated/build.js:1156 templates/js/translated/company.js:487
-#: templates/js/translated/company.js:743 templates/js/translated/order.js:471
-#: templates/js/translated/part.js:694 templates/js/translated/part.js:864
-#: templates/js/translated/stock.js:201 templates/js/translated/stock.js:797
-#: templates/js/translated/stock.js:1838
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr ""
-#: build/models.py:213
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:218
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:222
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:227
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr ""
-#: build/models.py:231
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:236
+#: build/models.py:256
msgid "Destination Location"
msgstr ""
-#: build/models.py:240
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:244
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:247
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:251
+#: build/models.py:271
msgid "Completed items"
msgstr ""
-#: build/models.py:253
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:257 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:261
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:265 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:269
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:272 order/models.py:162 part/models.py:853
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:723
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr ""
-#: build/models.py:276 order/models.py:561
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr ""
-#: build/models.py:280 order/models.py:288 templates/js/translated/build.js:967
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr ""
-#: build/models.py:286
+#: build/models.py:306
msgid "completed by"
msgstr ""
-#: build/models.py:294 templates/js/translated/build.js:938
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:295
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:303 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:140 part/models.py:857
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:950
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr ""
-#: build/models.py:304
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:309 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr ""
-#: build/models.py:310 part/models.py:715 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr ""
-#: build/models.py:314 build/templates/build/navbar.html:52
-#: company/models.py:141 company/models.py:576
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:721 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/sales_order_detail.html:440
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:842
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1726 stock/models.py:1832
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:385 templates/js/translated/company.js:839
-#: templates/js/translated/order.js:604 templates/js/translated/stock.js:338
-#: templates/js/translated/stock.js:580 templates/js/translated/stock.js:1061
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr ""
-#: build/models.py:315
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:792
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:795
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:798
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1208
-msgid "BuildItem must be unique for build, stock_item and install_into"
-msgstr ""
-
-#: build/models.py:1233
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1237
+#: build/models.py:1117
#, python-brace-format
-msgid "Allocated quantity ({n}) must not exceed available quantity ({q})"
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1244 order/models.py:938
-msgid "StockItem is over-allocated"
+#: build/models.py:1127
+msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1248 order/models.py:941
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1312
-#, python-brace-format
-msgid "Selected stock item not found in BOM for part '{p}'"
+#: build/models.py:1193
+msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1372 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:183 templates/js/translated/build.js:869
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
-#: build/models.py:1373
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1389 stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:271 templates/js/translated/build.js:276
-#: templates/js/translated/build.js:1012 templates/js/translated/order.js:797
-#: templates/js/translated/order.js:802 templates/js/translated/stock.js:1626
+#: build/models.py:1270 build/serializers.py:328
+#: stock/templates/stock/item_base.html:8
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr ""
-#: build/models.py:1390
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1403
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1411
+#: build/models.py:1292
msgid "Install into"
msgstr ""
-#: build/models.py:1412
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: order/templates/order/sales_order_detail.html:206
-#: order/templates/order/sales_order_detail.html:291
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:627
-#: templates/js/translated/model_renderers.js:57
-msgid "Serial Number"
+#: build/serializers.py:137 build/serializers.py:357
+msgid "Build Output"
msgstr ""
-#: build/templates/build/auto_allocate.html:9
-msgid "Automatically Allocate Stock"
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
msgstr ""
-#: build/templates/build/auto_allocate.html:10
-msgid "The following stock items will be allocated to the specified build output"
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/templates/build/auto_allocate.html:37
-msgid "No stock items found that can be automatically allocated to this build"
+#: build/serializers.py:154
+msgid "This build output has already been completed"
msgstr ""
-#: build/templates/build/auto_allocate.html:39
-msgid "Stock items will have to be manually allocated"
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr ""
+
+#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:396
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:403
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:431
+msgid "Allocation items must be provided"
+msgstr ""
+
+#: build/tasks.py:92
+msgid "Stock required for build order"
+msgstr ""
+
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
msgstr ""
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:88
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
msgstr ""
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:835
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:670
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr ""
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1156,228 +1159,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:7
-msgid "Select a stock item to allocate to the selected build output"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:11
-#, python-format
-msgid "The allocated stock will be installed into the following build output:
%(output)s"
-msgstr ""
-
-#: build/templates/build/create_build_item.html:17
-#, python-format
-msgid "No stock available for %(part)s"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:8
-msgid "Are you sure you want to unallocate this stock?"
-msgstr ""
-
-#: build/templates/build/delete_build_item.html:11
-msgid "The selected stock will be unallocated from the build output"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/forms.py:88 order/models.py:794
-#: order/templates/order/receive_parts.html:25 stock/forms.py:134
-#: templates/js/translated/order.js:593
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:931 templates/js/translated/stock.js:1873
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:113
-#: templates/js/translated/build.js:933
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr ""
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:911
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173
-msgid "Auto Allocate"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:801
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:318 build/views.py:638
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:679
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:206
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:211
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:212
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:225
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:226
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:227
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:235
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:246 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:257
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:261 build/templates/build/detail.html:398
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:62
-#: order/templates/order/purchase_order_detail.html:95
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:357
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:157
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:920 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:376
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:129
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:874 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:383
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:136
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:883 stock/templates/stock/item.html:230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:384
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:137
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:884 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
+#: build/templates/build/detail.html:513
+msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/index.html:28
+#: build/templates/build/detail.html:514
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1385,170 +1363,90 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1555
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:20 build/templates/build/navbar.html:23
-#: build/views.py:90
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
msgid "Build was cancelled"
msgstr ""
-#: build/views.py:137
-msgid "Allocated stock to build output"
-msgstr ""
-
-#: build/views.py:149
+#: build/views.py:88
msgid "Create Build Output"
msgstr ""
-#: build/views.py:167
+#: build/views.py:106
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:183 stock/views.py:1389
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
-#: build/views.py:192
+#: build/views.py:131
msgid "Serial numbers required for trackable build output"
msgstr ""
-#: build/views.py:258
+#: build/views.py:197
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:279 build/views.py:369
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:280 build/views.py:370 stock/views.py:404
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
-#: build/views.py:292
+#: build/views.py:231
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:294 build/views.py:495
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
-#: build/views.py:306
+#: build/views.py:245
msgid "Build output deleted"
msgstr ""
-#: build/views.py:404
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:410
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:421
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:437
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:479
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:486
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:492
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:591
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:628
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
-#: build/views.py:643
-msgid "Removed parts from build allocation"
-msgstr ""
-
-#: build/views.py:655
-msgid "Allocate stock to build output"
-msgstr ""
-
-#: build/views.py:698
-msgid "Item must be currently in stock"
-msgstr ""
-
-#: build/views.py:704
-msgid "Stock item is over-allocated"
-msgstr ""
-
-#: build/views.py:705 templates/js/translated/bom.js:269
-#: templates/js/translated/build.js:728 templates/js/translated/build.js:1019
-#: templates/js/translated/build.js:1196
-msgid "Available"
-msgstr ""
-
-#: build/views.py:707
-msgid "Stock item must be selected"
-msgstr ""
-
-#: build/views.py:870
-msgid "Edit Stock Allocation"
-msgstr ""
-
-#: build/views.py:874
-msgid "Updated Build Item"
-msgstr ""
-
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
msgstr ""
@@ -1586,653 +1484,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:839 common/models.py:986
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:99 company/models.py:100
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2252 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:342
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:805
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:354
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:811
-#: templates/js/translated/table_filters.js:358
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:822
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:827
-#: templates/js/translated/table_filters.js:366
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:817
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:370
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:837
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:653
-msgid "Show Quantity in Forms"
-msgstr ""
-
-#: common/models.py:654
-msgid "Display available part quantity in some forms"
-msgstr ""
-
-#: common/models.py:660
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:661
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:667
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:668
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:674
+#: common/models.py:771
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:772
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:675
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:682
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:688
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:689
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:695
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:696
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:702 templates/stats.html:25
-msgid "Debug Mode"
-msgstr ""
-
-#: common/models.py:703
-msgid "Generate reports in debug mode (HTML output)"
-msgstr ""
-
-#: common/models.py:709
-msgid "Page Size"
-msgstr ""
-
-#: common/models.py:710
-msgid "Default page size for PDF reports"
-msgstr ""
-
-#: common/models.py:720
-msgid "Test Reports"
-msgstr ""
-
-#: common/models.py:721
-msgid "Enable generation of test reports"
-msgstr ""
-
-#: common/models.py:727
-msgid "Stock Expiry"
-msgstr ""
-
-#: common/models.py:728
-msgid "Enable stock expiry functionality"
-msgstr ""
-
-#: common/models.py:734
-msgid "Sell Expired Stock"
-msgstr ""
-
-#: common/models.py:735
-msgid "Allow sale of expired stock"
-msgstr ""
-
-#: common/models.py:741
-msgid "Stock Stale Time"
-msgstr ""
-
-#: common/models.py:742
-msgid "Number of days stock items are considered stale before expiring"
-msgstr ""
-
-#: common/models.py:744
-msgid "days"
-msgstr ""
-
-#: common/models.py:749
-msgid "Build Expired Stock"
-msgstr ""
-
-#: common/models.py:750
-msgid "Allow building with expired stock"
-msgstr ""
-
-#: common/models.py:756
-msgid "Stock Ownership Control"
-msgstr ""
-
-#: common/models.py:757
-msgid "Enable ownership control over stock locations and items"
-msgstr ""
-
-#: common/models.py:763
-msgid "Group by Part"
-msgstr ""
-
-#: common/models.py:764
-msgid "Group stock items by part reference in table views"
-msgstr ""
-
-#: common/models.py:770
-msgid "Build Order Reference Prefix"
-msgstr ""
-
-#: common/models.py:771
-msgid "Prefix value for build order reference"
-msgstr ""
-
-#: common/models.py:776
-msgid "Build Order Reference Regex"
-msgstr ""
-
-#: common/models.py:777
-msgid "Regular expression pattern for matching build order reference"
-msgstr ""
-
-#: common/models.py:781
-msgid "Sales Order Reference Prefix"
-msgstr ""
-
-#: common/models.py:782
-msgid "Prefix value for sales order reference"
-msgstr ""
-
-#: common/models.py:787
-msgid "Purchase Order Reference Prefix"
-msgstr ""
-
-#: common/models.py:788
-msgid "Prefix value for purchase order reference"
-msgstr ""
-
-#: common/models.py:794
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:795
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:800
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:801
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
#: common/models.py:806
-msgid "Enable sell"
+msgid "Part Name Display Format"
msgstr ""
#: common/models.py:807
-msgid "Enable sell functionality in InvenTree interface"
+msgid "Format to display the part name"
msgstr ""
-#: common/models.py:812
-msgid "Enable stock"
+#: common/models.py:814
+msgid "Enable Reports"
msgstr ""
-#: common/models.py:813
-msgid "Enable stock functionality in InvenTree interface"
+#: common/models.py:815
+msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:818
-msgid "Enable SO"
+#: common/models.py:821 templates/stats.html:25
+msgid "Debug Mode"
msgstr ""
-#: common/models.py:819
-msgid "Enable SO functionality in InvenTree interface"
+#: common/models.py:822
+msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:824
-msgid "Enable PO"
+#: common/models.py:828
+msgid "Page Size"
msgstr ""
-#: common/models.py:825
-msgid "Enable PO functionality in InvenTree interface"
+#: common/models.py:829
+msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:850
-msgid "Show starred parts"
+#: common/models.py:839
+msgid "Test Reports"
msgstr ""
-#: common/models.py:851
-msgid "Show starred parts on the homepage"
+#: common/models.py:840
+msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:856
-msgid "Show latest parts"
+#: common/models.py:846
+msgid "Stock Expiry"
msgstr ""
-#: common/models.py:857
-msgid "Show latest parts on the homepage"
+#: common/models.py:847
+msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:862
-msgid "Recent Part Count"
+#: common/models.py:853
+msgid "Sell Expired Stock"
+msgstr ""
+
+#: common/models.py:854
+msgid "Allow sale of expired stock"
+msgstr ""
+
+#: common/models.py:860
+msgid "Stock Stale Time"
+msgstr ""
+
+#: common/models.py:861
+msgid "Number of days stock items are considered stale before expiring"
msgstr ""
#: common/models.py:863
-msgid "Number of recent parts to display on index page"
+msgid "days"
+msgstr ""
+
+#: common/models.py:868
+msgid "Build Expired Stock"
msgstr ""
#: common/models.py:869
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:870
-msgid "Show BOMs that await validation on the homepage"
+msgid "Allow building with expired stock"
msgstr ""
#: common/models.py:875
-msgid "Show recent stock changes"
+msgid "Stock Ownership Control"
msgstr ""
#: common/models.py:876
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:881
-msgid "Recent Stock Count"
+msgid "Enable ownership control over stock locations and items"
msgstr ""
#: common/models.py:882
-msgid "Number of recent stock items to display on index page"
+msgid "Group by Part"
msgstr ""
-#: common/models.py:887
-msgid "Show low stock"
+#: common/models.py:883
+msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:888
-msgid "Show low stock items on the homepage"
+#: common/models.py:889
+msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:893
-msgid "Show depleted stock"
+#: common/models.py:890
+msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:894
-msgid "Show depleted stock items on the homepage"
+#: common/models.py:895
+msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:899
-msgid "Show needed stock"
+#: common/models.py:896
+msgid "Regular expression pattern for matching build order reference"
msgstr ""
#: common/models.py:900
-msgid "Show stock items needed for builds on the homepage"
+msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:905
-msgid "Show expired stock"
+#: common/models.py:901
+msgid "Prefix value for sales order reference"
msgstr ""
#: common/models.py:906
-msgid "Show expired stock items on the homepage"
+msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:911
-msgid "Show stale stock"
+#: common/models.py:907
+msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:912
-msgid "Show stale stock items on the homepage"
+#: common/models.py:913
+msgid "Enable password forgot"
msgstr ""
-#: common/models.py:917
-msgid "Show pending builds"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:918
-msgid "Show pending builds on the homepage"
+#: common/models.py:919
+msgid "Enable registration"
msgstr ""
-#: common/models.py:923
-msgid "Show overdue builds"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:924
-msgid "Show overdue builds on the homepage"
+#: common/models.py:925
+msgid "Enable SSO"
msgstr ""
-#: common/models.py:929
-msgid "Show outstanding POs"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:930
-msgid "Show outstanding POs on the homepage"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:935
-msgid "Show overdue POs"
+#: common/models.py:932
+msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:936
-msgid "Show overdue POs on the homepage"
+#: common/models.py:937
+msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:941
-msgid "Show outstanding SOs"
+#: common/models.py:938
+msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:942
-msgid "Show outstanding SOs on the homepage"
+#: common/models.py:943
+msgid "Mail twice"
msgstr ""
-#: common/models.py:947
-msgid "Show overdue SOs"
+#: common/models.py:944
+msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:948
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:949
+msgid "Password twice"
msgstr ""
-#: common/models.py:954
-msgid "Inline label display"
+#: common/models.py:950
+msgid "On signup ask users twice for their password"
msgstr ""
#: common/models.py:955
+msgid "Group on signup"
+msgstr ""
+
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
+msgstr ""
+
+#: common/models.py:1001
+msgid "Show subscribed parts"
+msgstr ""
+
+#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
+msgid "Inline label display"
+msgstr ""
+
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:961
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:962
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:968
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:969
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1026 company/forms.py:43
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1147
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1153
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1154
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1033 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1322
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1034
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1127
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:26 order/views.py:290
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
-#: order/views.py:291 part/templates/part/bom_upload/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2247,292 +2219,290 @@ msgstr ""
msgid "Image URL"
msgstr ""
-#: company/models.py:104
+#: company/models.py:105
msgid "Company description"
msgstr ""
-#: company/models.py:105
+#: company/models.py:106
msgid "Description of the company"
msgstr ""
-#: company/models.py:111 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: company/models.py:112 company/templates/company/company_base.html:70
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
-#: company/models.py:112
+#: company/models.py:113
msgid "Company website URL"
msgstr ""
-#: company/models.py:116 company/templates/company/company_base.html:88
+#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
msgstr ""
-#: company/models.py:117
+#: company/models.py:118
msgid "Company address"
msgstr ""
-#: company/models.py:120
+#: company/models.py:121
msgid "Phone number"
msgstr ""
-#: company/models.py:121
+#: company/models.py:122
msgid "Contact phone number"
msgstr ""
-#: company/models.py:124 company/templates/company/company_base.html:102
+#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
-#: company/models.py:124
+#: company/models.py:125
msgid "Contact email address"
msgstr ""
-#: company/models.py:127 company/templates/company/company_base.html:109
+#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
msgstr ""
-#: company/models.py:128
+#: company/models.py:129
msgid "Point of contact"
msgstr ""
-#: company/models.py:130 company/models.py:347 company/models.py:563
-#: order/models.py:160 part/models.py:714
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:535
-#: templates/js/translated/company.js:823 templates/js/translated/part.js:972
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
-#: company/models.py:130
+#: company/models.py:131
msgid "Link to external company information"
msgstr ""
-#: company/models.py:138 part/models.py:724
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "is customer"
msgstr ""
-#: company/models.py:143
+#: company/models.py:144
msgid "Do you sell items to this company?"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "is supplier"
msgstr ""
-#: company/models.py:145
+#: company/models.py:146
msgid "Do you purchase items from this company?"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "is manufacturer"
msgstr ""
-#: company/models.py:147
+#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:151 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:155
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
-#: company/models.py:154
+#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:319 company/models.py:534 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
-#: company/models.py:323 company/models.py:538 order/views.py:1082
+#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
msgstr ""
-#: company/models.py:334 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:241 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:512
-#: templates/js/translated/company.js:794 templates/js/translated/part.js:222
+#: company/models.py:335 company/templates/company/company_base.html:116
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:335 templates/js/translated/part.js:223
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:341 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:242 templates/js/translated/company.js:528
-#: templates/js/translated/company.js:812 templates/js/translated/order.js:505
-#: templates/js/translated/part.js:233
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:342 templates/js/translated/part.js:234
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
-#: company/models.py:348
+#: company/models.py:349
msgid "URL for external manufacturer part link"
msgstr ""
-#: company/models.py:354
+#: company/models.py:355
msgid "Manufacturer part description"
msgstr ""
-#: company/models.py:408 company/models.py:557
+#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
-#: company/models.py:415
+#: company/models.py:416
msgid "Parameter name"
msgstr ""
-#: company/models.py:421
+#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1819 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:642 templates/js/translated/part.js:612
-#: templates/js/translated/stock.js:576
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
-#: company/models.py:422
+#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:428 part/models.py:799 part/models.py:2220
-#: templates/js/translated/company.js:648 templates/js/translated/part.js:618
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
-#: company/models.py:429
+#: company/models.py:430
msgid "Parameter units"
msgstr ""
-#: company/models.py:501
+#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
msgstr ""
-#: company/models.py:544 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:286 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:768 templates/js/translated/order.js:328
-#: templates/js/translated/part.js:203
+#: company/models.py:545 company/templates/company/company_base.html:121
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:545 templates/js/translated/part.js:204
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:550 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:287 templates/js/translated/order.js:492
-#: templates/js/translated/part.js:214
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:551 templates/js/translated/part.js:215
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
-#: company/models.py:558
+#: company/models.py:559
msgid "Select manufacturer part"
msgstr ""
-#: company/models.py:564
+#: company/models.py:565
msgid "URL for external supplier part link"
msgstr ""
-#: company/models.py:570
+#: company/models.py:571
msgid "Supplier part description"
msgstr ""
-#: company/models.py:575 company/templates/company/supplier_part.html:120
-#: part/models.py:2368 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:579 part/models.py:1599
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:581 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:844 templates/js/translated/stock.js:1057
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
-#: company/models.py:581
+#: company/models.py:582
msgid "Part packaging"
msgstr ""
-#: company/models.py:583 part/models.py:1601
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
-#: company/models.py:583
+#: company/models.py:584
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:304 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:117
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2543,145 +2513,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:550
-#: order/templates/order/sales_order_base.html:94 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:692
-#: templates/js/translated/stock.js:1608
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:193
-#: part/templates/part/part_base.html:418
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:164
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:149
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:325
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:345
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:620
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2689,228 +2654,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:560
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:316 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:194
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:834
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:54
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:196
-#: templates/InvenTree/search.html:232
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:529 templates/js/translated/part.js:758
-#: templates/js/translated/part.js:934 templates/js/translated/stock.js:202
-#: templates/js/translated/stock.js:850 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:198 templates/js/translated/stock.js:1507
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:784 templates/js/translated/stock.js:1014
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:857
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:858
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:306 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:336
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2926,20 +2886,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2955,7 +2915,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3012,349 +2972,330 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:302
-msgid "Destination location must be specified"
-msgstr ""
-
-#: order/forms.py:30 order/templates/order/order_base.html:47
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:41 order/templates/order/order_base.html:54
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:52 order/forms.py:63 order/templates/order/order_base.html:59
-#: order/templates/order/sales_order_base.html:61
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:74 order/templates/order/sales_order_base.html:58
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:89
-msgid "Set all received parts listed above to this location (if left blank, use \"Destination\" column value in above table)"
-msgstr ""
-
-#: order/forms.py:116
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:122
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:540
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:555
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:337
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:313 stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:421
-msgid "Lines can only be received against an order marked as 'Placed'"
-msgstr ""
-
-#: order/models.py:425
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:427
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:551
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:557
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:557
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:562
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:565 templates/js/translated/order.js:733
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:572
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:616
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:713
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:719
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:721
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:751 order/models.py:835 templates/js/translated/order.js:785
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:752 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:306 templates/js/translated/stock.js:991
-#: templates/js/translated/stock.js:1589
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:773
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:780 order/templates/order/order_base.html:131
-#: order/templates/order/receive_parts.html:22
-#: order/templates/order/sales_order_base.html:133
-#: templates/js/translated/order.js:573
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:781
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:788 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:147 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1045
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:789
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:843 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:844
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:923 order/models.py:925
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:929
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:931
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:934
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:944
+#: order/models.py:961
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:949
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:960
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:961
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:964
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:276
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:234
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:235
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:250
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:289
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:299
+#: order/serializers.py:315
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:514
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:43
-#: order/templates/order/sales_order_base.html:54
-msgid "Edit order information"
-msgstr ""
-
-#: order/templates/order/order_base.html:51
-msgid "Receive items"
-msgstr ""
-
-#: order/templates/order/order_base.html:64
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:79
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
+msgid "Receive items"
+msgstr ""
+
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
-#: order/templates/order/order_base.html:196
-#: stock/templates/stock/location.html:250 templates/js/translated/order.js:437
-msgid "New Location"
-msgstr ""
-
-#: order/templates/order/order_base.html:197
-#: stock/templates/stock/location.html:42 templates/js/translated/order.js:438
-msgid "Create new stock location"
-msgstr ""
-
#: order/templates/order/order_cancel.html:8
msgid "Cancelling this order means that the order and line items will no longer be editable."
msgstr ""
@@ -3427,6 +3368,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3453,7 +3396,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3503,7 +3446,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:363 templates/js/translated/order.js:738
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3523,102 +3466,92 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:47
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:38
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:23
-#: order/templates/order/purchase_order_detail.html:203
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/receive_parts.html:8
-#, python-format
-msgid "Receive outstanding parts for %(order)s - %(desc)s"
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
msgstr ""
-#: order/templates/order/receive_parts.html:14 part/api.py:54
-#: part/models.py:298 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-#: templates/js/translated/part.js:1154 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:15
-msgid "Fill out number of parts received, the status and destination"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:20
-msgid "Order Code"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:21
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:949
-msgid "On Order"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:23
-msgid "Receive"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:37
-msgid "Error: Referenced part has been removed"
-msgstr ""
-
-#: order/templates/order/receive_parts.html:68
-msgid "Remove line"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:16
-msgid "This Sales Order has not been fully allocated"
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
msgstr ""
#: order/templates/order/sales_order_base.html:66
-msgid "Packing List"
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
msgstr ""
-#: order/templates/order/sales_order_base.html:74
-msgid "Sales Order Details"
+#: order/templates/order/sales_order_base.html:86
+msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:100
-#: templates/js/translated/order.js:705
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:178
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3633,109 +3566,10 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
-#: order/templates/order/sales_order_detail.html:226
-#: templates/js/translated/bom.js:394 templates/js/translated/build.js:782
-#: templates/js/translated/build.js:1219
-msgid "Actions"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:233
-#: templates/js/translated/build.js:668 templates/js/translated/build.js:1030
-msgid "Edit stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:234
-#: templates/js/translated/build.js:670 templates/js/translated/build.js:1031
-msgid "Delete stock allocation"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:307
-msgid "No matching line items"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:337
-msgid "ID"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:354
-#: templates/js/translated/order.js:481
-msgid "Total"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:377
-#: templates/js/translated/order.js:534 templates/js/translated/part.js:1296
-#: templates/js/translated/part.js:1507
-msgid "Unit Price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:384
-#: templates/js/translated/order.js:543
-msgid "Total price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:405
-#: templates/js/translated/build.js:733 templates/js/translated/build.js:1026
-msgid "Allocated"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:407
-msgid "Fulfilled"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:444
-msgid "PO"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:474
-msgid "Allocate serial numbers"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:477
-#: templates/js/translated/build.js:796
-msgid "Allocate stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:480
-msgid "Purchase stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:484
-#: templates/js/translated/build.js:789 templates/js/translated/build.js:1227
-msgid "Build stock"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:487
-#: order/templates/order/sales_order_detail.html:606
-msgid "Calculate price"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:490
-#: templates/js/translated/order.js:616
-msgid "Edit line item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:491
-msgid "Delete line item "
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:519
-#: templates/js/translated/order.js:403
-msgid "Edit Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:529
-#: templates/js/translated/order.js:415
-msgid "Delete Line Item"
-msgstr ""
-
-#: order/templates/order/sales_order_detail.html:612
-msgid "Update Unit Price"
-msgstr ""
-
#: order/templates/order/sales_order_ship.html:10
msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
msgstr ""
@@ -3760,187 +3594,135 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_allocation_delete.html:7
-msgid "This action will unallocate the following stock from the Sales Order"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
-#: order/views.py:104
+#: order/views.py:103
msgid "Cancel Order"
msgstr ""
-#: order/views.py:113 order/views.py:139
+#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
msgstr ""
-#: order/views.py:116 order/views.py:142
+#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
msgstr ""
-#: order/views.py:130
+#: order/views.py:129
msgid "Cancel sales order"
msgstr ""
-#: order/views.py:156
+#: order/views.py:155
msgid "Issue Order"
msgstr ""
-#: order/views.py:165
+#: order/views.py:164
msgid "Confirm order placement"
msgstr ""
-#: order/views.py:175
+#: order/views.py:174
msgid "Purchase order issued"
msgstr ""
-#: order/views.py:186
+#: order/views.py:185
msgid "Complete Order"
msgstr ""
-#: order/views.py:202
+#: order/views.py:201
msgid "Confirm order completion"
msgstr ""
-#: order/views.py:213
+#: order/views.py:212
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:223
-msgid "Ship Order"
-msgstr ""
-
-#: order/views.py:239
+#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
-#: order/views.py:245
+#: order/views.py:244
msgid "Could not ship order"
msgstr ""
-#: order/views.py:292
+#: order/views.py:291
msgid "Match Supplier Parts"
msgstr ""
-#: order/views.py:480
-msgid "Receive Parts"
-msgstr ""
-
-#: order/views.py:552
-msgid "Items received"
-msgstr ""
-
-#: order/views.py:620
-msgid "Error converting quantity to number"
-msgstr ""
-
-#: order/views.py:626
-msgid "Receive quantity less than zero"
-msgstr ""
-
-#: order/views.py:632
-msgid "No lines specified"
-msgstr ""
-
-#: order/views.py:705
+#: order/views.py:535
msgid "Update prices"
msgstr ""
-#: order/views.py:963
+#: order/views.py:793
#, python-brace-format
msgid "Ordered {n} parts"
msgstr ""
-#: order/views.py:1016
+#: order/views.py:846
msgid "Allocate Serial Numbers"
msgstr ""
-#: order/views.py:1061
+#: order/views.py:891
#, python-brace-format
msgid "Allocated {n} items"
msgstr ""
-#: order/views.py:1077
+#: order/views.py:907
msgid "Select line item"
msgstr ""
-#: order/views.py:1108
+#: order/views.py:938
#, python-brace-format
msgid "No matching item for serial {serial}"
msgstr ""
-#: order/views.py:1118
+#: order/views.py:948
#, python-brace-format
msgid "{serial} is not in stock"
msgstr ""
-#: order/views.py:1126
+#: order/views.py:956
#, python-brace-format
msgid "{serial} already allocated to an order"
msgstr ""
-#: order/views.py:1180
-msgid "Allocate Stock to Order"
-msgstr ""
-
-#: order/views.py:1254
-msgid "Edit Allocation Quantity"
-msgstr ""
-
-#: order/views.py:1269
-msgid "Remove allocation"
-msgstr ""
-
-#: order/views.py:1341
+#: order/views.py:1072
msgid "Sales order not found"
msgstr ""
-#: order/views.py:1347
+#: order/views.py:1078
msgid "Price not found"
msgstr ""
-#: order/views.py:1350
+#: order/views.py:1081
#, python-brace-format
msgid "Updated {part} unit-price to {price}"
msgstr ""
-#: order/views.py:1355
+#: order/views.py:1086
#, python-brace-format
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:75 part/models.py:733
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -4000,7 +3782,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2250
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -4024,467 +3806,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:76
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:79
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:79
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:89 part/models.py:2296
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:90 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:383
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:435 part/models.py:447
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:544
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:548
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:553
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:632
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:657
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:664
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:665
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:675
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:682
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:687 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:688
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:695 part/models.py:2295
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:167
-#: templates/js/translated/part.js:916
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:696
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:701 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:517 templates/js/translated/part.js:749
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:702
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:708
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:709 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:521
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:731
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:778 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:779
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:786
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:787
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:792
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:793
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:800
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:806
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:812
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:818
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:823
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:828
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:832 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:337
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:833
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:838
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:843
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:846
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:846
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:849
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:851
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:855
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1601
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2096
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2113
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2133 templates/js/translated/part.js:1205
-#: templates/js/translated/stock.js:556
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2134
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2139
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2140
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2145 templates/js/translated/part.js:1214
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2146
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2151 templates/js/translated/part.js:1222
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2152
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2157 templates/js/translated/part.js:1229
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2158
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2169
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2205
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2213
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2220
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2252 part/models.py:2301 part/models.py:2302
-#: templates/InvenTree/settings/settings.html:162
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2254
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2306 templates/InvenTree/settings/settings.html:171
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2307
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2341
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2350
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2356
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2358 templates/js/translated/bom.js:256
-#: templates/js/translated/bom.js:314
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2358
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2361
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2365
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2368
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2374 templates/js/translated/bom.js:331
-#: templates/js/translated/bom.js:338
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2375
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2380 templates/js/translated/bom.js:323
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2381
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2466 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2475 part/models.py:2477
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2480
-msgid "BOM Item"
+#: part/models.py:2826
+msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2599
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2603
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2635
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4495,28 +4275,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4529,93 +4308,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4654,12 +4444,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:352
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4684,136 +4473,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:716
-msgid "Edit Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:728
-msgid "Delete Test Result Template"
-msgstr ""
-
-#: part/templates/part/detail.html:784
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:936
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:948
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:960
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1049
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4827,170 +4646,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:503
-#: templates/js/translated/company.js:759 templates/js/translated/part.js:432
-#: templates/js/translated/part.js:509
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
+msgid "On Order"
+msgstr ""
+
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:352
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:765
-#: templates/js/translated/part.js:953
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:524
-#: part/templates/part/part_base.html:550
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:396 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:439
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:519
-#: part/templates/part/part_base.html:544
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -5014,7 +4813,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -5048,36 +4847,56 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
-#: part/templates/part/partial_delete.html:7
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid ""
+"Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
#, python-format
msgid "Are you sure you want to delete part '%(full_name)s'?"
msgstr ""
-#: part/templates/part/partial_delete.html:12
+#: part/templates/part/partial_delete.html:22
#, python-format
msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated"
msgstr ""
-#: part/templates/part/partial_delete.html:22
+#: part/templates/part/partial_delete.html:32
#, python-format
msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:"
msgstr ""
-#: part/templates/part/partial_delete.html:33
+#: part/templates/part/partial_delete.html:43
#, python-format
msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:"
msgstr ""
-#: part/templates/part/partial_delete.html:44
+#: part/templates/part/partial_delete.html:54
#, python-format
msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:"
msgstr ""
-#: part/templates/part/partial_delete.html:55
+#: part/templates/part/partial_delete.html:65
#, python-format
msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
msgstr ""
@@ -5110,7 +4929,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:301
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5132,7 +4951,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5152,12 +4971,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:278
-#: templates/js/translated/part.js:755 templates/js/translated/part.js:957
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5170,132 +4990,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:303
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5387,31 +5199,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1807
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1813
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:353 templates/js/translated/stock.js:1523
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5423,542 +5239,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/api.py:146
-msgid "Request must contain list of stock items"
+#: stock/api.py:422
+msgid "Quantity is required"
msgstr ""
-#: stock/api.py:154
-msgid "Improperly formatted data"
-msgstr ""
-
-#: stock/api.py:162
-msgid "Each entry must contain a valid integer primary-key"
-msgstr ""
-
-#: stock/api.py:168
-msgid "Primary key does not match valid stock item"
-msgstr ""
-
-#: stock/api.py:178
-msgid "Invalid quantity value"
-msgstr ""
-
-#: stock/api.py:183
-msgid "Quantity must not be less than zero"
-msgstr ""
-
-#: stock/api.py:211
-#, python-brace-format
-msgid "Updated stock for {n} items"
-msgstr ""
-
-#: stock/api.py:247 stock/api.py:280
-msgid "Specified quantity exceeds stock quantity"
-msgstr ""
-
-#: stock/api.py:270
-msgid "Valid location must be specified"
-msgstr ""
-
-#: stock/api.py:290
-#, python-brace-format
-msgid "Moved {n} parts to {loc}"
-msgstr ""
-
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:967
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1727
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1784
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1790
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1808
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1814 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1820
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1827
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
+msgstr ""
+
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
+msgstr ""
+
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
+msgstr ""
+
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
+msgid "Destination stock location"
+msgstr ""
+
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:534
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:651
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:980
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -6012,107 +5824,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:279
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:932
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -6133,104 +5920,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:181
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:288 stock/views.py:911 stock/views.py:1033
-#: stock/views.py:1398
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:303
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:322
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:331
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:355
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:364
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:375
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:386
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:403
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:508
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:683
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:780 templates/js/translated/stock.js:353
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:791
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:813
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:959
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1050
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1143 templates/js/translated/build.js:392
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1285
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1367
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1467
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1480
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1491
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1498
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1507
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6254,74 +6037,70 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
-#: templates/InvenTree/search.html:268 templates/js/translated/stock.js:699
-msgid "Shipped to customer"
-msgstr ""
-
-#: templates/InvenTree/search.html:271 templates/js/translated/stock.js:709
-msgid "No stock location set"
-msgstr ""
-
#: templates/InvenTree/settings/barcode.html:8
msgid "Barcode Settings"
msgstr ""
@@ -6338,23 +6117,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6362,94 +6141,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
+#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
+msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:366 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:46
-#: templates/InvenTree/settings/navbar.html:48
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:94
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:56
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:59
-#: templates/InvenTree/settings/navbar.html:61 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Categories"
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
+msgid "Signup"
msgstr ""
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6462,32 +6175,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:152
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:174
-#: templates/InvenTree/settings/settings.html:273
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:175
-#: templates/InvenTree/settings/settings.html:274
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:253
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6496,70 +6274,156 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:9
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:15
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:17
+#: templates/InvenTree/settings/user.html:20
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:24
-#: templates/registration/login.html:58
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
-msgid "Email Address"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "Theme Settings"
+#: templates/InvenTree/settings/user.html:74
+msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
-msgid "Set Theme"
+#: templates/InvenTree/settings/user.html:76
+msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:70
+#: templates/InvenTree/settings/user.html:78
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:84
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:85
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:128
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:167
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:89
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:103
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:104
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
+msgstr ""
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr ""
@@ -6568,83 +6432,262 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:971 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm Email Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
+msgstr ""
+
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:21
+#, python-format
+msgid ""
+"Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:25
+#, python-format
+msgid ""
+"If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:42
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:20
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:22
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
msgstr ""
#: templates/image_download.html:8
@@ -6676,7 +6719,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6708,8 +6751,8 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6742,59 +6785,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1041
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1061
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6802,226 +6845,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169
-msgid "Open subassembly"
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:287
-msgid "Purchase Price Range"
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
msgstr ""
-#: templates/js/translated/bom.js:294
-msgid "Purchase Price Average"
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428
-msgid "View BOM"
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:402
-msgid "Validate BOM Item"
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
msgstr ""
#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
+msgid "Open subassembly"
+msgstr ""
+
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:500
+msgid "Purchase Price Range"
+msgstr ""
+
+#: templates/js/translated/bom.js:507
+msgid "Purchase Price Average"
+msgstr ""
+
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
+msgid "View BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:616
+msgid "Validate BOM Item"
+msgstr ""
+
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483
-#: templates/js/translated/build.js:1267
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:69
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:95
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:127
-msgid "Auto-allocate stock items to this output"
-msgstr ""
-
-#: templates/js/translated/build.js:135
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:145
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:154
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:249
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:287 templates/js/translated/order.js:813
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:391 templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/js/translated/build.js:702
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:723
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:846
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:1262
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1334
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:1348
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:1377
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1378
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1389
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1451
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:863 templates/js/translated/part.js:845
-#: templates/js/translated/part.js:1123 templates/js/translated/stock.js:783
-#: templates/js/translated/stock.js:1477
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:883
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:944 templates/js/translated/stock.js:1696
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:956
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1007
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7029,7 +7210,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7041,97 +7222,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:86
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:475
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:495
-#: templates/js/translated/company.js:751 templates/js/translated/part.js:416
-#: templates/js/translated/part.js:501
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:499
-#: templates/js/translated/company.js:755 templates/js/translated/part.js:420
-#: templates/js/translated/part.js:505
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:626 templates/js/translated/part.js:593
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:663 templates/js/translated/part.js:635
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:636
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:683 templates/js/translated/part.js:653
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:694 templates/js/translated/part.js:665
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:731
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:402
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:403
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7139,53 +7320,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:279
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:281
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:312
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:889 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1379
+#: templates/js/translated/forms.js:1457
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1593
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7242,62 +7431,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:970
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:922
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:934
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1031
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1046
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1047
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1070
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7305,480 +7494,670 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:82
+#: templates/js/translated/model_renderers.js:77
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:119
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:171
+#: templates/js/translated/model_renderers.js:236
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:208
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:237
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
-#: templates/js/translated/order.js:45
+#: templates/js/translated/order.js:48
msgid "Add Customer"
msgstr ""
-#: templates/js/translated/order.js:70
+#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:295
+#: templates/js/translated/order.js:208
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:301
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:326
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:428
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:430
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:450
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:320 templates/js/translated/order.js:682
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:452
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:617
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
+msgstr ""
+
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:621
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:658
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:696
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:774
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/order.js:1226
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1244
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1286
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1535
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1579
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1585
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1596
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1719
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1779
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1793
+msgid "No matching line items"
+msgstr ""
+
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:159
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:160
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:167
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:168
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:175 templates/js/translated/stock.js:330
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:186
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:187
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:195
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:196
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:252
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:253
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:260
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:261
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:268
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:269
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:282
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:323
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:408 templates/js/translated/part.js:493
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:412 templates/js/translated/part.js:497
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:424
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:428
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:543
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:732 templates/js/translated/part.js:994
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:921
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:944
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1148 templates/js/translated/stock.js:1501
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1191
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1242 templates/js/translated/stock.js:514
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1243 templates/js/translated/stock.js:515
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1249
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1274
+#: templates/js/translated/part.js:1533
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1547
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1329
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1330
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1431
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1450
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:66
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:96
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:99
-msgid "Format"
-msgstr ""
-
-#: templates/js/translated/stock.js:100
-msgid "Select file format"
-msgstr ""
-
-#: templates/js/translated/stock.js:124
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:125
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:167
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:168
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:174
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:175
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:179
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:180
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:184
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:185 users/models.py:190
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:189 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:278
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:314
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:339
-msgid "Stock transaction notes"
-msgstr ""
-
-#: templates/js/translated/stock.js:477
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:484
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:510
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:536
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:584
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:691
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:695
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:703
+#: templates/js/translated/stock.js:980
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:865
+#: templates/js/translated/stock.js:990
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:870
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:879
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:883
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:887
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:894
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:896
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:898
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:902
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:956
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1029
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1067
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1176
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1203
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1205
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1364
-msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/stock.js:1379
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1393
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1394
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1533
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1580
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1599
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1618
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1636
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1659
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1667
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1708
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1709
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1833
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1856
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1884
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -7798,324 +8177,278 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:327
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:282
-#: templates/js/translated/table_filters.js:299
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:287
-#: templates/js/translated/table_filters.js:304
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:328
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:332
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:333
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:338
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:362
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:374
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:357
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:360
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:363
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:375
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:87 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:89
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:91 templates/registration/login.html:89
+#: templates/navbar.html:90
msgid "Login"
msgstr ""
-#: templates/navbar.html:114
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
-#: templates/registration/logged_out.html:50
-msgid "You have been logged out"
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
msgstr ""
-#: templates/registration/logged_out.html:51
-#: templates/registration/password_reset_complete.html:51
-#: templates/registration/password_reset_done.html:58
-msgid "Return to login screen"
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
msgstr ""
-#: templates/registration/login.html:64
-msgid "Enter username"
-msgstr ""
-
-#: templates/registration/login.html:70
-msgid "Password"
-msgstr ""
-
-#: templates/registration/login.html:83
-msgid "Username / password combination is incorrect"
-msgstr ""
-
-#: templates/registration/login.html:95
-#: templates/registration/password_reset_form.html:51
-msgid "Forgotten your password?"
-msgstr ""
-
-#: templates/registration/login.html:95
-msgid "Click here to reset"
-msgstr ""
-
-#: templates/registration/password_reset_complete.html:50
-msgid "Password reset complete"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:52
-#: templates/registration/password_reset_confirm.html:56
-msgid "Change password"
-msgstr ""
-
-#: templates/registration/password_reset_confirm.html:60
-msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
-msgstr ""
-
-#: templates/registration/password_reset_done.html:51
-msgid "We've emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly."
-msgstr ""
-
-#: templates/registration/password_reset_done.html:54
-msgid "If you don't receive an email, please make sure you've entered the address you registered with, and check your spam folder."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:52
-msgid "Enter your email address below."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:53
-msgid "An email will be sent with password reset instructions."
-msgstr ""
-
-#: templates/registration/password_reset_form.html:58
-msgid "Send email"
+#: templates/stats.html:9
+msgid "Server"
msgstr ""
#: templates/stats.html:13
@@ -8170,51 +8503,51 @@ msgstr ""
msgid "Export Stock Information"
msgstr ""
-#: templates/stock_table.html:27
+#: templates/stock_table.html:20
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8250,34 +8583,34 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:177
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:185
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:188
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:188
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:190
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:192
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:192
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:194
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.mo b/InvenTree/locale/es/LC_MESSAGES/django.mo
index 2343941a2a..5fe6a6efb8 100644
Binary files a/InvenTree/locale/es/LC_MESSAGES/django.mo and b/InvenTree/locale/es/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/es/LC_MESSAGES/django.po b/InvenTree/locale/es/LC_MESSAGES/django.po
index 199e95b752..cf4528aca5 100644
--- a/InvenTree/locale/es/LC_MESSAGES/django.po
+++ b/InvenTree/locale/es/LC_MESSAGES/django.po
@@ -2,1132 +2,1115 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
-"Language-Team: Spanish\n"
-"Language: es_ES\n"
+"Language-Team: Spanish, Mexico\n"
+"Language: es_MX\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"X-Crowdin-Project: inventree\n"
"X-Crowdin-Project-ID: 452300\n"
-"X-Crowdin-Language: es-ES\n"
+"X-Crowdin-Language: es-MX\n"
"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
"X-Crowdin-File-ID: 138\n"
#: InvenTree/api.py:64
msgid "API endpoint not found"
-msgstr "endpoint API no encontrado"
+msgstr ""
#: InvenTree/api.py:110
msgid "No action specified"
-msgstr "No se especificó ninguna acción"
+msgstr ""
#: InvenTree/api.py:124
msgid "No matching action found"
-msgstr "No se encontró ninguna acción coincidente"
+msgstr ""
#: InvenTree/fields.py:100
msgid "Enter date"
-msgstr "Ingrese la fecha"
+msgstr ""
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
-msgstr "Confirmar"
+msgstr ""
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
-msgstr "Confirmar eliminación"
+msgstr ""
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
-msgstr "Confirmar borrado de artículo"
+msgstr ""
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
-msgstr "Introduzca contraseña"
+msgstr ""
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
-msgstr "Ingrese su nueva contraseña"
+msgstr ""
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
-msgstr "Confirmar la contraseña"
+msgstr ""
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
-msgstr "Confirmar contraseña nueva"
+msgstr ""
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
-msgstr "Seleccionar Categoría"
-
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
msgstr ""
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
-msgstr "Número de serie duplicado: {n}"
+msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
-msgstr "Cantidad proporcionada no válida"
+msgstr ""
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
-msgstr "No se ha proporcionado un número de serie"
+msgstr ""
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
-msgstr "Grupo no válido: un {g}"
+msgstr ""
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
-msgstr "Número de serie duplicado: {g}"
+msgstr ""
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
-msgstr "Numeros de serie no encontrados"
+msgstr ""
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
-msgstr "El número de números de serie únicos ({s}) debe coincidir con la cantidad ({q})"
+msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
-msgstr "Archivo adjunto"
+msgstr ""
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
-msgstr "Seleccionar archivo para adjuntar"
+msgstr ""
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
-msgstr "Comentario"
+msgstr ""
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
-msgstr "Comentario del archivo"
+msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
-msgstr "Usuario"
-
-#: InvenTree/models.py:79
-msgid "upload date"
-msgstr "fecha de subida"
-
-#: InvenTree/models.py:99
-msgid "Filename must not be empty"
-msgstr "El nombre del archivo no debe estar vacío"
+msgstr ""
#: InvenTree/models.py:122
-msgid "Invalid attachment directory"
-msgstr "Directorio de archivos adjuntos no válido"
-
-#: InvenTree/models.py:132
-#, python-brace-format
-msgid "Filename contains illegal character '{c}'"
-msgstr "El nombre del archivo contiene el carácter ilegal '{c}'"
-
-#: InvenTree/models.py:135
-msgid "Filename missing extension"
-msgstr "Falta el nombre de extensión del archivo"
+msgid "upload date"
+msgstr ""
#: InvenTree/models.py:142
+msgid "Filename must not be empty"
+msgstr ""
+
+#: InvenTree/models.py:165
+msgid "Invalid attachment directory"
+msgstr ""
+
+#: InvenTree/models.py:175
+#, python-brace-format
+msgid "Filename contains illegal character '{c}'"
+msgstr ""
+
+#: InvenTree/models.py:178
+msgid "Filename missing extension"
+msgstr ""
+
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
-msgstr "Ya existe un archivo adjunto con este nombre"
+msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
-msgstr "Error al cambiar el nombre del archivo"
+msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
-msgstr "Selección no válida"
+msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
-msgstr "Nombre"
+msgstr ""
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
-msgstr "Descripción"
+msgstr ""
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
-msgstr "Descripción (opcional)"
+msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
-msgstr "padre"
+msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
-msgstr "Debe ser un numero valido"
+msgstr ""
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
-msgstr "Nombre de Archivo"
+msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
-msgstr "Alemán"
+msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
-msgstr "Griego"
+msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
-msgstr "Inglés"
+msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
-msgstr "Español"
+msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
-msgstr "Francés"
+msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
-msgstr "Hebreo"
+msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
-msgstr "Italiano"
+msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
-msgstr "Japonés"
+msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
-msgstr "Coreano"
+msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
-msgstr "Holandés"
+msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
-msgstr "Noruego"
+msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
-msgstr "Polaco"
+msgstr ""
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
-msgstr "Ruso"
+msgstr ""
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
-msgstr "Sueco"
+msgstr ""
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
-msgstr "Tailandés"
+msgstr ""
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
-msgstr "Turco"
+msgstr ""
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
-msgstr "Vietnamita"
+msgstr ""
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
-msgstr "Chino"
+msgstr ""
#: InvenTree/status.py:94
msgid "Background worker check failed"
-msgstr "Falló la comprobación en segundo plano del worker"
+msgstr ""
#: InvenTree/status.py:98
msgid "Email backend not configured"
-msgstr "No se ha configurado el backend de correo"
+msgstr ""
#: InvenTree/status.py:101
msgid "InvenTree system health checks failed"
-msgstr "Las comprobaciones de estado del sistema InvenTree fallaron"
+msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
-msgstr "Pendiente"
+msgstr ""
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
-msgstr "Colocado"
+msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
-msgstr "Terminado"
+msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
-msgstr "Cancelado"
+msgstr ""
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
-msgstr "Perdida"
+msgstr ""
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
-msgstr "Devuelto"
+msgstr ""
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
-msgstr "Enviado"
+msgstr ""
+
+#: InvenTree/status_codes.py:183
+msgid "OK"
+msgstr ""
+
+#: InvenTree/status_codes.py:184
+msgid "Attention needed"
+msgstr ""
+
+#: InvenTree/status_codes.py:185
+msgid "Damaged"
+msgstr ""
#: InvenTree/status_codes.py:186
-msgid "OK"
-msgstr "OK"
-
-#: InvenTree/status_codes.py:187
-msgid "Attention needed"
-msgstr "Atención necesaria"
+msgid "Destroyed"
+msgstr ""
#: InvenTree/status_codes.py:188
-msgid "Damaged"
-msgstr "Dañado"
-
-#: InvenTree/status_codes.py:189
-msgid "Destroyed"
-msgstr "Destruido"
-
-#: InvenTree/status_codes.py:191
msgid "Rejected"
-msgstr "Rechazado"
+msgstr ""
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
-msgstr "Entrada antigua de rastreo de stock"
+msgstr ""
+
+#: InvenTree/status_codes.py:271
+msgid "Stock item created"
+msgstr ""
+
+#: InvenTree/status_codes.py:273
+msgid "Edited stock item"
+msgstr ""
#: InvenTree/status_codes.py:274
-msgid "Stock item created"
-msgstr "Artículo de stock creado"
+msgid "Assigned serial number"
+msgstr ""
#: InvenTree/status_codes.py:276
-msgid "Edited stock item"
-msgstr "Elemento de stock editado"
+msgid "Stock counted"
+msgstr ""
#: InvenTree/status_codes.py:277
-msgid "Assigned serial number"
-msgstr "Número de serie asignado"
+msgid "Stock manually added"
+msgstr ""
-#: InvenTree/status_codes.py:279
-msgid "Stock counted"
-msgstr "Stock contado"
+#: InvenTree/status_codes.py:278
+msgid "Stock manually removed"
+msgstr ""
#: InvenTree/status_codes.py:280
-msgid "Stock manually added"
-msgstr "Stock añadido manualmente"
+msgid "Location changed"
+msgstr ""
-#: InvenTree/status_codes.py:281
-msgid "Stock manually removed"
-msgstr "Stock eliminado manualmente"
+#: InvenTree/status_codes.py:282
+msgid "Installed into assembly"
+msgstr ""
#: InvenTree/status_codes.py:283
-msgid "Location changed"
-msgstr "Ubicación cambiada"
+msgid "Removed from assembly"
+msgstr ""
#: InvenTree/status_codes.py:285
-msgid "Installed into assembly"
-msgstr "Instalado en el ensamblaje"
+msgid "Installed component item"
+msgstr ""
#: InvenTree/status_codes.py:286
-msgid "Removed from assembly"
-msgstr "Retirado del ensamblaje"
+msgid "Removed component item"
+msgstr ""
#: InvenTree/status_codes.py:288
-msgid "Installed component item"
-msgstr "Artículo del componente instalado"
+msgid "Split from parent item"
+msgstr ""
#: InvenTree/status_codes.py:289
-msgid "Removed component item"
-msgstr "Elemento de componente eliminado"
+msgid "Split child item"
+msgstr ""
-#: InvenTree/status_codes.py:291
-msgid "Split from parent item"
-msgstr "Separar del elemento principal"
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+msgid "Sent to customer"
+msgstr ""
#: InvenTree/status_codes.py:292
-msgid "Split child item"
-msgstr "Dividir elemento secundario"
+msgid "Returned from customer"
+msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
-msgid "Sent to customer"
-msgstr "Enviar al cliente"
+#: InvenTree/status_codes.py:294
+msgid "Build order output created"
+msgstr ""
#: InvenTree/status_codes.py:295
-msgid "Returned from customer"
-msgstr "Devolución del cliente"
+msgid "Build order output completed"
+msgstr ""
#: InvenTree/status_codes.py:297
-msgid "Build order output created"
-msgstr "Trabajo de ensamblaje creado"
-
-#: InvenTree/status_codes.py:298
-msgid "Build order output completed"
-msgstr "Construir orden de salida completado"
-
-#: InvenTree/status_codes.py:300
msgid "Received against purchase order"
-msgstr "Recibido contra la orden de compra"
+msgstr ""
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
-msgstr "Producción"
+msgstr ""
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
-msgstr "No es un código de moneda válido"
+msgstr ""
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
-msgstr "Carácter no válido en el nombre del artículo"
+msgstr ""
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
-msgstr "El IPN debe coincidir con la expresión regular {pat}"
+msgstr ""
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
-msgstr "La referencia debe coincidir con la expresión regular {pattern}"
+msgstr ""
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
-msgstr "Carácter ilegal en el nombre ({x})"
+msgstr ""
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
-msgstr "El valor excedente no debe ser negativo"
+msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
-msgstr "El excedente no debe superar el 100%"
+msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
-msgstr "El excedente debe ser un valor entero o un porcentaje"
+msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
-msgstr "Eliminar elemento"
+msgstr ""
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
-msgstr "Marque la casilla para confirmar la eliminación del artículo"
+msgstr ""
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
-msgstr "Editar datos del usuario"
+msgstr ""
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
-msgstr "Configurar Contraseña"
+msgstr ""
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
-msgstr "Los campos de contraseña deben coincidir"
+msgstr ""
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
-msgstr "Información del sistema"
+msgstr ""
#: barcodes/api.py:53 barcodes/api.py:150
msgid "Must provide barcode_data parameter"
-msgstr "Debe proporcionar el parámetro barcode_data"
+msgstr ""
#: barcodes/api.py:126
msgid "No match found for barcode data"
-msgstr "No se encontró ninguna coincidencia para los datos del código de barras"
+msgstr ""
#: barcodes/api.py:128
msgid "Match found for barcode data"
-msgstr "Coincidencia encontrada para datos de códigos de barras"
+msgstr ""
#: barcodes/api.py:153
msgid "Must provide stockitem parameter"
-msgstr "Debe proporcionar el parámetro stockitem"
+msgstr ""
#: barcodes/api.py:160
msgid "No matching stock item found"
-msgstr "No se ha encontrado ningún artículo de stock que coincida"
+msgstr ""
#: barcodes/api.py:190
msgid "Barcode already matches StockItem object"
-msgstr "El código de barras ya corresponde al objeto de inventario"
+msgstr ""
#: barcodes/api.py:194
msgid "Barcode already matches StockLocation object"
-msgstr "El código de barras ya corresponde a la ubicación de almacenamiento de existencias"
+msgstr ""
#: barcodes/api.py:198
msgid "Barcode already matches Part object"
-msgstr "El código de barras ya corresponde a la parte"
+msgstr ""
#: barcodes/api.py:204 barcodes/api.py:216
msgid "Barcode hash already matches StockItem object"
-msgstr "El código de barras ya está asignado a un objeto de inventario"
+msgstr ""
#: barcodes/api.py:222
msgid "Barcode associated with StockItem"
-msgstr "Código de barras asignado al objeto de inventario"
-
-#: build/api.py:213
-msgid "Matching build order does not exist"
msgstr ""
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr "Número de orden de construcción"
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr "Fecha objetivo de pedido"
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr "Fecha objetivo"
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr "Fecha límite para la finalización de la construcción. La construcción estará vencida después de esta fecha."
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
-msgstr "Cantidad"
+msgstr ""
+
+#: build/forms.py:37
+msgid "Enter quantity for build output"
+msgstr ""
+
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
+msgid "Serial Numbers"
+msgstr ""
+
+#: build/forms.py:43
+msgid "Enter serial numbers for build outputs"
+msgstr ""
#: build/forms.py:49
-msgid "Number of items to build"
-msgstr "Número de elementos para construir"
-
-#: build/forms.py:91
-msgid "Enter quantity for build output"
-msgstr "Ingrese la cantidad para la producción de la construcción"
-
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
-msgid "Serial Numbers"
-msgstr "Números de serie"
-
-#: build/forms.py:97
-msgid "Enter serial numbers for build outputs"
-msgstr "Introduzca los números de serie de salidas de construcción"
-
-#: build/forms.py:103
msgid "Confirm creation of build output"
-msgstr "Confirmar la creación de salida de construcción"
+msgstr ""
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
-msgstr "Confirmar eliminación de salida de construcción"
+msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr "Confirmar la desasignación de stock"
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
-msgstr "Marcar como construcción completa"
+msgstr ""
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr "Unicación"
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr "Ubicación de las partes completadas"
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr "Estado"
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr "Generar estado de stock de salida"
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr "Confirmar incompleta"
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr "Confirmar la finalización con una asignación de stock incompleta"
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr "Confirmar la terminación de construcción"
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
-msgstr "Confirmar cancelación"
+msgstr ""
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
-msgstr "Confirmar la cancelación de construcción"
+msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
-msgstr "Opción no válida para la construcción padre"
+msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
-msgstr "Construir órden"
+msgstr ""
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
-msgstr "Construir órdenes"
+msgstr ""
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
-msgstr "Referencia"
+msgstr ""
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
-msgstr "Parte"
+msgstr ""
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
-msgstr "Ubicación de la fuente"
+msgstr ""
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
-msgstr "Ubicación de destino"
+msgstr ""
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
-msgstr "Seleccione la ubicación donde se almacenarán los elementos completados"
+msgstr ""
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
-msgstr "Cantidad a crear"
+msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
-msgstr "Número de objetos existentes a construir"
-
-#: build/models.py:253
-msgid "Completed items"
-msgstr "Elementos completados"
-
-#: build/models.py:255
-msgid "Number of stock items which have been completed"
-msgstr "Número de productos en stock que se han completado"
-
-#: build/models.py:259 part/templates/part/part_base.html:198
-msgid "Build Status"
-msgstr "Estado de la construcción"
-
-#: build/models.py:263
-msgid "Build status code"
-msgstr "Código de estado de construcción"
-
-#: build/models.py:267 stock/models.py:513
-msgid "Batch Code"
-msgstr "Numero de lote"
+msgstr ""
#: build/models.py:271
+msgid "Completed items"
+msgstr ""
+
+#: build/models.py:273
+msgid "Number of stock items which have been completed"
+msgstr ""
+
+#: build/models.py:277 part/templates/part/part_base.html:216
+msgid "Build Status"
+msgstr ""
+
+#: build/models.py:281
+msgid "Build status code"
+msgstr ""
+
+#: build/models.py:285 stock/models.py:544
+msgid "Batch Code"
+msgstr ""
+
+#: build/models.py:289
msgid "Batch code for this build output"
-msgstr "Número de lote de este producto final"
+msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
-msgstr "Fecha de Creación"
+msgstr ""
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
-msgstr "Fecha límite de finalización"
-
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
-msgid "Completion Date"
-msgstr "Fecha de finalización"
-
-#: build/models.py:288
-msgid "completed by"
-msgstr "terminado por"
-
-#: build/models.py:296 templates/js/translated/build.js:1264
-msgid "Issued by"
-msgstr "Emitido por"
+msgstr ""
#: build/models.py:297
-msgid "User who issued this build order"
-msgstr "El usuario que emitió esta orden"
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
-#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
-msgid "Responsible"
-msgstr "Responsable"
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
+msgid "Completion Date"
+msgstr ""
#: build/models.py:306
+msgid "completed by"
+msgstr ""
+
+#: build/models.py:314 templates/js/translated/build.js:1668
+msgid "Issued by"
+msgstr ""
+
+#: build/models.py:315
+msgid "User who issued this build order"
+msgstr ""
+
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
+#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:1680
+msgid "Responsible"
+msgstr ""
+
+#: build/models.py:324
msgid "User responsible for this build order"
-msgstr "Usuario responsable de esta orden"
+msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
-msgstr "Link externo"
+msgstr ""
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
-msgstr "Enlace a URL externa"
+msgstr ""
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
-msgstr "Notas"
+msgstr ""
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
-msgstr "Notas adicionales de construcción"
+msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
-msgstr "No se ha especificado salida de construcción"
+msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
-msgstr "La construcción de la salida ya está completa"
+msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
-msgstr "La salida de la construcción no coincide con el orden de construcción"
+msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
-msgstr "La cantidad debe ser 1 para el stock serializado"
+msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr ""
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr ""
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr ""
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
-msgstr "Número de serie"
+#: build/tasks.py:92
+msgid "Stock required for build order"
+msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
msgstr ""
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
-msgstr "Progreso"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
+msgstr ""
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
-msgstr "Emitido por"
-
-#: build/templates/build/build_base.html:214
-msgid "Incomplete Outputs"
msgstr ""
#: build/templates/build/build_base.html:215
+msgid "Incomplete Outputs"
+msgstr ""
+
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
-msgstr "Destinación"
+msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
-msgid "Batch"
-msgstr "Lote"
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
+msgid "Batch"
+msgstr ""
+
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr ""
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr "Completados"
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
-msgstr "Detalles"
-
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr ""
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr ""
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
-msgstr "días"
+msgstr ""
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,9 +2227,9 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
-msgstr "Página web"
+msgstr ""
#: company/models.py:113
msgid "Company website URL"
@@ -2314,15 +2245,16 @@ msgstr ""
#: company/models.py:121
msgid "Phone number"
-msgstr "Teléfono"
+msgstr ""
#: company/models.py:122
msgid "Contact phone number"
-msgstr "Teléfono de contacto"
+msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
-msgstr "Email"
+msgstr ""
#: company/models.py:125
msgid "Contact email address"
@@ -2330,17 +2262,17 @@ msgstr ""
#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
-msgstr "Contacto"
+msgstr ""
#: company/models.py:129
msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2348,7 +2280,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
@@ -2376,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2385,8 +2317,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
-msgstr "Fabricante"
+msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
-msgstr "Proveedor"
+msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
-msgstr "Nota"
+msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,46 +2466,42 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2581,147 +2510,142 @@ msgstr ""
#: company/templates/company/company_base.html:95
msgid "Phone"
-msgstr "Teléfono"
+msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
-msgstr "Cliente"
+msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
-msgid "Options"
-msgstr "Opciones"
-
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
+msgid "Options"
+msgstr ""
+
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
-msgstr "Eliminar"
+msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr "Fabricantes"
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2965,20 +2885,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
-msgstr "Exportar"
-
-#: part/templates/part/category.html:130
-msgid "Create new part"
-msgstr ""
-
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
-msgid "New Part"
-msgstr ""
-
-#: part/templates/part/category.html:138
-msgid "Set category"
-msgstr ""
-
-#: part/templates/part/category.html:138
-msgid "Set Category"
-msgstr ""
-
-#: part/templates/part/category.html:141
-msgid "Print Labels"
-msgstr ""
-
-#: part/templates/part/category.html:142
-msgid "Export Data"
-msgstr ""
-
-#: part/templates/part/category.html:146
-msgid "View list display"
msgstr ""
#: part/templates/part/category.html:149
-msgid "View grid display"
+msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
+msgid "New Part"
+msgstr ""
+
+#: part/templates/part/category.html:164
+msgid "Set category"
+msgstr ""
+
+#: part/templates/part/category.html:164
+msgid "Set Category"
+msgstr ""
+
+#: part/templates/part/category.html:168
+msgid "Print Labels"
+msgstr ""
+
+#: part/templates/part/category.html:170
+msgid "Export Data"
+msgstr ""
+
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr "Guardar"
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
-msgstr "Confirmar asignación de stock"
+msgstr ""
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.mo b/InvenTree/locale/es_MX/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..71cbdf3e9d
Binary files /dev/null and b/InvenTree/locale/es_MX/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
new file mode 100644
index 0000000000..cf4017d955
--- /dev/null
+++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po
@@ -0,0 +1,8616 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR , YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: LANGUAGE \n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: InvenTree/api.py:64
+msgid "API endpoint not found"
+msgstr ""
+
+#: InvenTree/api.py:110
+msgid "No action specified"
+msgstr ""
+
+#: InvenTree/api.py:124
+msgid "No matching action found"
+msgstr ""
+
+#: InvenTree/fields.py:100
+msgid "Enter date"
+msgstr ""
+
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
+msgid "Confirm"
+msgstr ""
+
+#: InvenTree/forms.py:136
+msgid "Confirm delete"
+msgstr ""
+
+#: InvenTree/forms.py:137
+msgid "Confirm item deletion"
+msgstr ""
+
+#: InvenTree/forms.py:168
+msgid "Enter password"
+msgstr ""
+
+#: InvenTree/forms.py:169
+msgid "Enter new password"
+msgstr ""
+
+#: InvenTree/forms.py:176
+msgid "Confirm password"
+msgstr ""
+
+#: InvenTree/forms.py:177
+msgid "Confirm new password"
+msgstr ""
+
+#: InvenTree/forms.py:209
+msgid "Select Category"
+msgstr ""
+
+#: InvenTree/forms.py:230
+msgid "Email (again)"
+msgstr ""
+
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
+msgid "You must type the same email each time."
+msgstr ""
+
+#: InvenTree/helpers.py:430
+#, python-brace-format
+msgid "Duplicate serial: {n}"
+msgstr ""
+
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
+msgid "Invalid quantity provided"
+msgstr ""
+
+#: InvenTree/helpers.py:440
+msgid "Empty serial number string"
+msgstr ""
+
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
+#, python-brace-format
+msgid "Invalid group: {g}"
+msgstr ""
+
+#: InvenTree/helpers.py:498
+#, python-brace-format
+msgid "Duplicate serial: {g}"
+msgstr ""
+
+#: InvenTree/helpers.py:506
+msgid "No serial numbers found"
+msgstr ""
+
+#: InvenTree/helpers.py:510
+#, python-brace-format
+msgid "Number of unique serial number ({s}) must match quantity ({q})"
+msgstr ""
+
+#: InvenTree/models.py:109 stock/models.py:1874
+msgid "Attachment"
+msgstr ""
+
+#: InvenTree/models.py:110
+msgid "Select file to attach"
+msgstr ""
+
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
+msgid "Comment"
+msgstr ""
+
+#: InvenTree/models.py:112
+msgid "File comment"
+msgstr ""
+
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: report/templates/report/inventree_test_report_base.html:91
+#: templates/js/translated/stock.js:2054
+msgid "User"
+msgstr ""
+
+#: InvenTree/models.py:122
+msgid "upload date"
+msgstr ""
+
+#: InvenTree/models.py:142
+msgid "Filename must not be empty"
+msgstr ""
+
+#: InvenTree/models.py:165
+msgid "Invalid attachment directory"
+msgstr ""
+
+#: InvenTree/models.py:175
+#, python-brace-format
+msgid "Filename contains illegal character '{c}'"
+msgstr ""
+
+#: InvenTree/models.py:178
+msgid "Filename missing extension"
+msgstr ""
+
+#: InvenTree/models.py:185
+msgid "Attachment with this filename already exists"
+msgstr ""
+
+#: InvenTree/models.py:192
+msgid "Error renaming file"
+msgstr ""
+
+#: InvenTree/models.py:227
+msgid "Invalid choice"
+msgstr ""
+
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
+msgid "Name"
+msgstr ""
+
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
+#: part/templates/part/set_category.html:14 report/models.py:194
+#: report/models.py:551 report/models.py:590
+#: report/templates/report/inventree_build_order_base.html:118
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
+msgid "Description"
+msgstr ""
+
+#: InvenTree/models.py:251
+msgid "Description (optional)"
+msgstr ""
+
+#: InvenTree/models.py:259
+msgid "parent"
+msgstr ""
+
+#: InvenTree/serializers.py:62 part/models.py:2674
+msgid "Must be a valid number"
+msgstr ""
+
+#: InvenTree/serializers.py:251
+msgid "Filename"
+msgstr ""
+
+#: InvenTree/settings.py:664
+msgid "German"
+msgstr ""
+
+#: InvenTree/settings.py:665
+msgid "Greek"
+msgstr ""
+
+#: InvenTree/settings.py:666
+msgid "English"
+msgstr ""
+
+#: InvenTree/settings.py:667
+msgid "Spanish"
+msgstr ""
+
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
+msgid "French"
+msgstr ""
+
+#: InvenTree/settings.py:670
+msgid "Hebrew"
+msgstr ""
+
+#: InvenTree/settings.py:671
+msgid "Italian"
+msgstr ""
+
+#: InvenTree/settings.py:672
+msgid "Japanese"
+msgstr ""
+
+#: InvenTree/settings.py:673
+msgid "Korean"
+msgstr ""
+
+#: InvenTree/settings.py:674
+msgid "Dutch"
+msgstr ""
+
+#: InvenTree/settings.py:675
+msgid "Norwegian"
+msgstr ""
+
+#: InvenTree/settings.py:676
+msgid "Polish"
+msgstr ""
+
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
+msgid "Russian"
+msgstr ""
+
+#: InvenTree/settings.py:679
+msgid "Swedish"
+msgstr ""
+
+#: InvenTree/settings.py:680
+msgid "Thai"
+msgstr ""
+
+#: InvenTree/settings.py:681
+msgid "Turkish"
+msgstr ""
+
+#: InvenTree/settings.py:682
+msgid "Vietnamese"
+msgstr ""
+
+#: InvenTree/settings.py:683
+msgid "Chinese"
+msgstr ""
+
+#: InvenTree/status.py:94
+msgid "Background worker check failed"
+msgstr ""
+
+#: InvenTree/status.py:98
+msgid "Email backend not configured"
+msgstr ""
+
+#: InvenTree/status.py:101
+msgid "InvenTree system health checks failed"
+msgstr ""
+
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
+msgid "Pending"
+msgstr ""
+
+#: InvenTree/status_codes.py:102
+msgid "Placed"
+msgstr ""
+
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
+msgid "Complete"
+msgstr ""
+
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
+msgid "Cancelled"
+msgstr ""
+
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
+msgid "Lost"
+msgstr ""
+
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
+msgid "Returned"
+msgstr ""
+
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
+msgid "Shipped"
+msgstr ""
+
+#: InvenTree/status_codes.py:183
+msgid "OK"
+msgstr ""
+
+#: InvenTree/status_codes.py:184
+msgid "Attention needed"
+msgstr ""
+
+#: InvenTree/status_codes.py:185
+msgid "Damaged"
+msgstr ""
+
+#: InvenTree/status_codes.py:186
+msgid "Destroyed"
+msgstr ""
+
+#: InvenTree/status_codes.py:188
+msgid "Rejected"
+msgstr ""
+
+#: InvenTree/status_codes.py:269
+msgid "Legacy stock tracking entry"
+msgstr ""
+
+#: InvenTree/status_codes.py:271
+msgid "Stock item created"
+msgstr ""
+
+#: InvenTree/status_codes.py:273
+msgid "Edited stock item"
+msgstr ""
+
+#: InvenTree/status_codes.py:274
+msgid "Assigned serial number"
+msgstr ""
+
+#: InvenTree/status_codes.py:276
+msgid "Stock counted"
+msgstr ""
+
+#: InvenTree/status_codes.py:277
+msgid "Stock manually added"
+msgstr ""
+
+#: InvenTree/status_codes.py:278
+msgid "Stock manually removed"
+msgstr ""
+
+#: InvenTree/status_codes.py:280
+msgid "Location changed"
+msgstr ""
+
+#: InvenTree/status_codes.py:282
+msgid "Installed into assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:283
+msgid "Removed from assembly"
+msgstr ""
+
+#: InvenTree/status_codes.py:285
+msgid "Installed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:286
+msgid "Removed component item"
+msgstr ""
+
+#: InvenTree/status_codes.py:288
+msgid "Split from parent item"
+msgstr ""
+
+#: InvenTree/status_codes.py:289
+msgid "Split child item"
+msgstr ""
+
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
+msgid "Sent to customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:292
+msgid "Returned from customer"
+msgstr ""
+
+#: InvenTree/status_codes.py:294
+msgid "Build order output created"
+msgstr ""
+
+#: InvenTree/status_codes.py:295
+msgid "Build order output completed"
+msgstr ""
+
+#: InvenTree/status_codes.py:297
+msgid "Received against purchase order"
+msgstr ""
+
+#: InvenTree/status_codes.py:312
+msgid "Production"
+msgstr ""
+
+#: InvenTree/validators.py:23
+msgid "Not a valid currency code"
+msgstr ""
+
+#: InvenTree/validators.py:51
+msgid "Invalid character in part name"
+msgstr ""
+
+#: InvenTree/validators.py:64
+#, python-brace-format
+msgid "IPN must match regex pattern {pat}"
+msgstr ""
+
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
+#, python-brace-format
+msgid "Reference must match pattern {pattern}"
+msgstr ""
+
+#: InvenTree/validators.py:114
+#, python-brace-format
+msgid "Illegal character in name ({x})"
+msgstr ""
+
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
+msgid "Overage value must not be negative"
+msgstr ""
+
+#: InvenTree/validators.py:151
+msgid "Overage must not exceed 100%"
+msgstr ""
+
+#: InvenTree/validators.py:158
+msgid "Overage must be an integer value or a percentage"
+msgstr ""
+
+#: InvenTree/views.py:536
+msgid "Delete Item"
+msgstr ""
+
+#: InvenTree/views.py:585
+msgid "Check box to confirm item deletion"
+msgstr ""
+
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
+msgid "Edit User Information"
+msgstr ""
+
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
+msgid "Set Password"
+msgstr ""
+
+#: InvenTree/views.py:630
+msgid "Password fields must match"
+msgstr ""
+
+#: InvenTree/views.py:863 templates/navbar.html:101
+msgid "System Information"
+msgstr ""
+
+#: barcodes/api.py:53 barcodes/api.py:150
+msgid "Must provide barcode_data parameter"
+msgstr ""
+
+#: barcodes/api.py:126
+msgid "No match found for barcode data"
+msgstr ""
+
+#: barcodes/api.py:128
+msgid "Match found for barcode data"
+msgstr ""
+
+#: barcodes/api.py:153
+msgid "Must provide stockitem parameter"
+msgstr ""
+
+#: barcodes/api.py:160
+msgid "No matching stock item found"
+msgstr ""
+
+#: barcodes/api.py:190
+msgid "Barcode already matches StockItem object"
+msgstr ""
+
+#: barcodes/api.py:194
+msgid "Barcode already matches StockLocation object"
+msgstr ""
+
+#: barcodes/api.py:198
+msgid "Barcode already matches Part object"
+msgstr ""
+
+#: barcodes/api.py:204 barcodes/api.py:216
+msgid "Barcode hash already matches StockItem object"
+msgstr ""
+
+#: barcodes/api.py:222
+msgid "Barcode associated with StockItem"
+msgstr ""
+
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
+#: part/templates/part/bom_upload/match_parts.html:31
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
+#: part/templates/part/part_pricing.html:16
+#: report/templates/report/inventree_build_order_base.html:114
+#: report/templates/report/inventree_po_report.html:91
+#: report/templates/report/inventree_so_report.html:91
+#: report/templates/report/inventree_test_report_base.html:77
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
+msgid "Quantity"
+msgstr ""
+
+#: build/forms.py:37
+msgid "Enter quantity for build output"
+msgstr ""
+
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
+msgid "Serial Numbers"
+msgstr ""
+
+#: build/forms.py:43
+msgid "Enter serial numbers for build outputs"
+msgstr ""
+
+#: build/forms.py:49
+msgid "Confirm creation of build output"
+msgstr ""
+
+#: build/forms.py:70
+msgid "Confirm deletion of build output"
+msgstr ""
+
+#: build/forms.py:94
+msgid "Mark build as complete"
+msgstr ""
+
+#: build/forms.py:107
+msgid "Confirm cancel"
+msgstr ""
+
+#: build/forms.py:107 build/views.py:65
+msgid "Confirm build cancellation"
+msgstr ""
+
+#: build/models.py:133
+msgid "Invalid choice for parent build"
+msgstr ""
+
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
+#: report/templates/report/inventree_build_order_base.html:106
+#: templates/js/translated/build.js:397
+msgid "Build Order"
+msgstr ""
+
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
+msgid "Build Orders"
+msgstr ""
+
+#: build/models.py:198
+msgid "Build Order Reference"
+msgstr ""
+
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
+#: part/templates/part/bom_upload/match_parts.html:30
+#: report/templates/report/inventree_po_report.html:92
+#: report/templates/report/inventree_so_report.html:92
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
+msgid "Reference"
+msgstr ""
+
+#: build/models.py:210
+msgid "Brief description of the build"
+msgstr ""
+
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
+msgid "Parent Build"
+msgstr ""
+
+#: build/models.py:220
+msgid "BuildOrder to which this build is allocated"
+msgstr ""
+
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
+#: part/templates/part/part_app_base.html:8
+#: part/templates/part/part_pricing.html:12
+#: part/templates/part/set_category.html:13
+#: report/templates/report/inventree_build_order_base.html:110
+#: report/templates/report/inventree_po_report.html:90
+#: report/templates/report/inventree_so_report.html:90
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
+msgid "Part"
+msgstr ""
+
+#: build/models.py:233
+msgid "Select part to build"
+msgstr ""
+
+#: build/models.py:238
+msgid "Sales Order Reference"
+msgstr ""
+
+#: build/models.py:242
+msgid "SalesOrder to which this build is allocated"
+msgstr ""
+
+#: build/models.py:247 templates/js/translated/build.js:1347
+msgid "Source Location"
+msgstr ""
+
+#: build/models.py:251
+msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
+msgstr ""
+
+#: build/models.py:256
+msgid "Destination Location"
+msgstr ""
+
+#: build/models.py:260
+msgid "Select location where the completed items will be stored"
+msgstr ""
+
+#: build/models.py:264
+msgid "Build Quantity"
+msgstr ""
+
+#: build/models.py:267
+msgid "Number of stock items to build"
+msgstr ""
+
+#: build/models.py:271
+msgid "Completed items"
+msgstr ""
+
+#: build/models.py:273
+msgid "Number of stock items which have been completed"
+msgstr ""
+
+#: build/models.py:277 part/templates/part/part_base.html:216
+msgid "Build Status"
+msgstr ""
+
+#: build/models.py:281
+msgid "Build status code"
+msgstr ""
+
+#: build/models.py:285 stock/models.py:544
+msgid "Batch Code"
+msgstr ""
+
+#: build/models.py:289
+msgid "Batch code for this build output"
+msgstr ""
+
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
+msgid "Creation Date"
+msgstr ""
+
+#: build/models.py:296 order/models.py:578
+msgid "Target completion date"
+msgstr ""
+
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
+msgid "Completion Date"
+msgstr ""
+
+#: build/models.py:306
+msgid "completed by"
+msgstr ""
+
+#: build/models.py:314 templates/js/translated/build.js:1668
+msgid "Issued by"
+msgstr ""
+
+#: build/models.py:315
+msgid "User who issued this build order"
+msgstr ""
+
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
+#: report/templates/report/inventree_build_order_base.html:159
+#: templates/js/translated/build.js:1680
+msgid "Responsible"
+msgstr ""
+
+#: build/models.py:324
+msgid "User responsible for this build order"
+msgstr ""
+
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
+msgid "External Link"
+msgstr ""
+
+#: build/models.py:330 part/models.py:798 stock/models.py:540
+msgid "Link to external URL"
+msgstr ""
+
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
+#: report/templates/report/inventree_build_order_base.html:173
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
+msgid "Notes"
+msgstr ""
+
+#: build/models.py:335
+msgid "Extra build notes"
+msgstr ""
+
+#: build/models.py:710
+msgid "No build output specified"
+msgstr ""
+
+#: build/models.py:713
+msgid "Build output is already completed"
+msgstr ""
+
+#: build/models.py:716
+msgid "Build output does not match Build Order"
+msgstr ""
+
+#: build/models.py:1108
+msgid "Build item must specify a build output, as master part is marked as trackable"
+msgstr ""
+
+#: build/models.py:1117
+#, python-brace-format
+msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
+msgstr ""
+
+#: build/models.py:1127
+msgid "Stock item is over-allocated"
+msgstr ""
+
+#: build/models.py:1133 order/models.py:964
+msgid "Allocation quantity must be greater than zero"
+msgstr ""
+
+#: build/models.py:1139
+msgid "Quantity must be 1 for serialized stock"
+msgstr ""
+
+#: build/models.py:1193
+msgid "Selected stock item not found in BOM"
+msgstr ""
+
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
+msgid "Build"
+msgstr ""
+
+#: build/models.py:1254
+msgid "Build to allocate parts"
+msgstr ""
+
+#: build/models.py:1270 build/serializers.py:328
+#: stock/templates/stock/item_base.html:8
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
+msgid "Stock Item"
+msgstr ""
+
+#: build/models.py:1271
+msgid "Source stock item"
+msgstr ""
+
+#: build/models.py:1284
+msgid "Stock quantity to allocate to build"
+msgstr ""
+
+#: build/models.py:1292
+msgid "Install into"
+msgstr ""
+
+#: build/models.py:1293
+msgid "Destination stock item"
+msgstr ""
+
+#: build/serializers.py:137 build/serializers.py:357
+msgid "Build Output"
+msgstr ""
+
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr ""
+
+#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr ""
+
+#: build/serializers.py:396
+msgid "Build output must be specified for allocation of tracked parts"
+msgstr ""
+
+#: build/serializers.py:403
+msgid "Build output cannot be specified for allocation of untracked parts"
+msgstr ""
+
+#: build/serializers.py:431
+msgid "Allocation items must be provided"
+msgstr ""
+
+#: build/tasks.py:92
+msgid "Stock required for build order"
+msgstr ""
+
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
+#, python-format
+msgid "This Build Order is allocated to Sales Order %(link)s"
+msgstr ""
+
+#: build/templates/build/build_base.html:86
+#, python-format
+msgid "This Build Order is a child of Build Order %(link)s"
+msgstr ""
+
+#: build/templates/build/build_base.html:93
+msgid "Build Order is ready to mark as completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:98
+msgid "Build Order cannot be completed as outstanding outputs remain"
+msgstr ""
+
+#: build/templates/build/build_base.html:103
+msgid "Required build quantity has not yet been completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:108
+msgid "Stock has not been fully allocated to this Build Order"
+msgstr ""
+
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
+msgstr ""
+
+#: build/templates/build/build_base.html:143
+#, python-format
+msgid "This build was due on %(target)s"
+msgstr ""
+
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
+msgstr ""
+
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
+#: order/templates/order/sales_order_base.html:9
+#: order/templates/order/sales_order_base.html:28
+#: order/templates/order/sales_order_ship.html:25
+#: report/templates/report/inventree_build_order_base.html:136
+#: report/templates/report/inventree_so_report.html:77
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
+msgid "Sales Order"
+msgstr ""
+
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
+#: report/templates/report/inventree_build_order_base.html:153
+msgid "Issued By"
+msgstr ""
+
+#: build/templates/build/build_base.html:215
+msgid "Incomplete Outputs"
+msgstr ""
+
+#: build/templates/build/build_base.html:216
+msgid "Build Order cannot be completed as incomplete build outputs remain"
+msgstr ""
+
+#: build/templates/build/build_output_create.html:7
+msgid "The Bill of Materials contains trackable parts"
+msgstr ""
+
+#: build/templates/build/build_output_create.html:8
+msgid "Build outputs must be generated individually."
+msgstr ""
+
+#: build/templates/build/build_output_create.html:9
+msgid "Multiple build outputs will be created based on the quantity specified."
+msgstr ""
+
+#: build/templates/build/build_output_create.html:15
+msgid "Trackable parts can have serial numbers specified"
+msgstr ""
+
+#: build/templates/build/build_output_create.html:16
+msgid "Enter serial numbers to generate multiple single build outputs"
+msgstr ""
+
+#: build/templates/build/cancel.html:5
+msgid "Are you sure you wish to cancel this build?"
+msgstr ""
+
+#: build/templates/build/complete.html:8
+msgid "Build Order is complete"
+msgstr ""
+
+#: build/templates/build/complete.html:12
+msgid "Build Order is incomplete"
+msgstr ""
+
+#: build/templates/build/complete.html:15
+msgid "Incompleted build outputs remain"
+msgstr ""
+
+#: build/templates/build/complete.html:18
+msgid "Required build quantity has not been completed"
+msgstr ""
+
+#: build/templates/build/complete.html:21
+msgid "Required stock has not been fully allocated"
+msgstr ""
+
+#: build/templates/build/detail.html:16
+msgid "Build Details"
+msgstr ""
+
+#: build/templates/build/detail.html:39
+msgid "Stock Source"
+msgstr ""
+
+#: build/templates/build/detail.html:44
+msgid "Stock can be taken from any available location."
+msgstr ""
+
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
+msgid "Destination"
+msgstr ""
+
+#: build/templates/build/detail.html:57
+msgid "Destination location not specified"
+msgstr ""
+
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
+msgid "Batch"
+msgstr ""
+
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
+msgid "Created"
+msgstr ""
+
+#: build/templates/build/detail.html:138
+msgid "No target date set"
+msgstr ""
+
+#: build/templates/build/detail.html:147
+msgid "Build not complete"
+msgstr ""
+
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
+msgid "Child Build Orders"
+msgstr ""
+
+#: build/templates/build/detail.html:173
+msgid "Allocate Stock to Build"
+msgstr ""
+
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
+msgid "Unallocate stock"
+msgstr ""
+
+#: build/templates/build/detail.html:178
+msgid "Unallocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
+msgid "Order required parts"
+msgstr ""
+
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
+msgid "Order Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:197
+msgid "Untracked stock has been fully allocated for this Build Order"
+msgstr ""
+
+#: build/templates/build/detail.html:201
+msgid "Untracked stock has not been fully allocated for this Build Order"
+msgstr ""
+
+#: build/templates/build/detail.html:208
+msgid "Allocate selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:218
+msgid "This Build Order does not have any associated untracked BOM items"
+msgstr ""
+
+#: build/templates/build/detail.html:227
+msgid "Incomplete Build Outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:231
+msgid "Create new build output"
+msgstr ""
+
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
+msgstr ""
+
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
+msgstr ""
+
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
+msgstr ""
+
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:266
+msgid "Completed Build Outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
+msgid "Attachments"
+msgstr ""
+
+#: build/templates/build/detail.html:294
+msgid "Build Notes"
+msgstr ""
+
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
+msgid "Edit Notes"
+msgstr ""
+
+#: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
+msgid "Add Attachment"
+msgstr ""
+
+#: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
+msgid "Edit Attachment"
+msgstr ""
+
+#: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
+msgid "Confirm Delete Operation"
+msgstr ""
+
+#: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
+msgid "Delete Attachment"
+msgstr ""
+
+#: build/templates/build/detail.html:513
+msgid "Allocation Complete"
+msgstr ""
+
+#: build/templates/build/detail.html:514
+msgid "All untracked stock items have been allocated"
+msgstr ""
+
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
+msgid "New Build Order"
+msgstr ""
+
+#: build/templates/build/index.html:37 build/templates/build/index.html:38
+msgid "Print Build Orders"
+msgstr ""
+
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
+msgid "Display calendar view"
+msgstr ""
+
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
+msgid "Display list view"
+msgstr ""
+
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
+#: build/views.py:76
+msgid "Build was cancelled"
+msgstr ""
+
+#: build/views.py:88
+msgid "Create Build Output"
+msgstr ""
+
+#: build/views.py:106
+msgid "Maximum output quantity is "
+msgstr ""
+
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
+msgid "Serial numbers already exist"
+msgstr ""
+
+#: build/views.py:131
+msgid "Serial numbers required for trackable build output"
+msgstr ""
+
+#: build/views.py:197
+msgid "Delete Build Output"
+msgstr ""
+
+#: build/views.py:218
+msgid "Confirm unallocation of build stock"
+msgstr ""
+
+#: build/views.py:219 stock/views.py:385
+msgid "Check the confirmation box"
+msgstr ""
+
+#: build/views.py:231
+msgid "Build output does not match build"
+msgstr ""
+
+#: build/views.py:233
+msgid "Build output must be specified"
+msgstr ""
+
+#: build/views.py:245
+msgid "Build output deleted"
+msgstr ""
+
+#: build/views.py:261
+msgid "Complete Build Order"
+msgstr ""
+
+#: build/views.py:267
+msgid "Build order cannot be completed - incomplete outputs remain"
+msgstr ""
+
+#: build/views.py:278
+msgid "Completed build order"
+msgstr ""
+
+#: build/views.py:319
+msgid "Delete Build Order"
+msgstr ""
+
+#: common/files.py:67
+msgid "Unsupported file format: {ext.upper()}"
+msgstr ""
+
+#: common/files.py:69
+msgid "Error reading file (invalid encoding)"
+msgstr ""
+
+#: common/files.py:74
+msgid "Error reading file (invalid format)"
+msgstr ""
+
+#: common/files.py:76
+msgid "Error reading file (incorrect dimension)"
+msgstr ""
+
+#: common/files.py:78
+msgid "Error reading file (data could be corrupted)"
+msgstr ""
+
+#: common/forms.py:34 templates/js/translated/attachment.js:54
+msgid "File"
+msgstr ""
+
+#: common/forms.py:35
+msgid "Select file to upload"
+msgstr ""
+
+#: common/forms.py:50
+msgid "{name.title()} File"
+msgstr ""
+
+#: common/forms.py:51
+#, python-brace-format
+msgid "Select {name} file to upload"
+msgstr ""
+
+#: common/models.py:340 common/models.py:970 common/models.py:1178
+msgid "Settings key (must be unique - case insensitive"
+msgstr ""
+
+#: common/models.py:342
+msgid "Settings value"
+msgstr ""
+
+#: common/models.py:377
+msgid "Must be an integer value"
+msgstr ""
+
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
+msgid "Value must be a boolean value"
+msgstr ""
+
+#: common/models.py:416
+msgid "Value must be an integer value"
+msgstr ""
+
+#: common/models.py:439
+msgid "Key string must be unique"
+msgstr ""
+
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
+msgid "InvenTree Instance Name"
+msgstr ""
+
+#: common/models.py:611
+msgid "String descriptor for the server instance"
+msgstr ""
+
+#: common/models.py:615
+msgid "Use instance name"
+msgstr ""
+
+#: common/models.py:616
+msgid "Use the instance name in the title-bar"
+msgstr ""
+
+#: common/models.py:622 company/models.py:100 company/models.py:101
+msgid "Company name"
+msgstr ""
+
+#: common/models.py:623
+msgid "Internal company name"
+msgstr ""
+
+#: common/models.py:628
+msgid "Base URL"
+msgstr ""
+
+#: common/models.py:629
+msgid "Base URL for server instance"
+msgstr ""
+
+#: common/models.py:635
+msgid "Default Currency"
+msgstr ""
+
+#: common/models.py:636
+msgid "Default currency"
+msgstr ""
+
+#: common/models.py:642
+msgid "Download from URL"
+msgstr ""
+
+#: common/models.py:643
+msgid "Allow download of remote images and files from external URL"
+msgstr ""
+
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
+msgid "Barcode Support"
+msgstr ""
+
+#: common/models.py:650
+msgid "Enable barcode scanner support"
+msgstr ""
+
+#: common/models.py:656
+msgid "IPN Regex"
+msgstr ""
+
+#: common/models.py:657
+msgid "Regular expression pattern for matching Part IPN"
+msgstr ""
+
+#: common/models.py:661
+msgid "Allow Duplicate IPN"
+msgstr ""
+
+#: common/models.py:662
+msgid "Allow multiple parts to share the same IPN"
+msgstr ""
+
+#: common/models.py:668
+msgid "Allow Editing IPN"
+msgstr ""
+
+#: common/models.py:669
+msgid "Allow changing the IPN value while editing a part"
+msgstr ""
+
+#: common/models.py:675
+msgid "Copy Part BOM Data"
+msgstr ""
+
+#: common/models.py:676
+msgid "Copy BOM data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:682
+msgid "Copy Part Parameter Data"
+msgstr ""
+
+#: common/models.py:683
+msgid "Copy parameter data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:689
+msgid "Copy Part Test Data"
+msgstr ""
+
+#: common/models.py:690
+msgid "Copy test data by default when duplicating a part"
+msgstr ""
+
+#: common/models.py:696
+msgid "Copy Category Parameter Templates"
+msgstr ""
+
+#: common/models.py:697
+msgid "Copy category parameter templates when creating a part"
+msgstr ""
+
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
+msgid "Template"
+msgstr ""
+
+#: common/models.py:704
+msgid "Parts are templates by default"
+msgstr ""
+
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
+msgid "Assembly"
+msgstr ""
+
+#: common/models.py:711
+msgid "Parts can be assembled from other components by default"
+msgstr ""
+
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
+msgid "Component"
+msgstr ""
+
+#: common/models.py:718
+msgid "Parts can be used as sub-components by default"
+msgstr ""
+
+#: common/models.py:724 part/models.py:905
+msgid "Purchaseable"
+msgstr ""
+
+#: common/models.py:725
+msgid "Parts are purchaseable by default"
+msgstr ""
+
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
+msgid "Salable"
+msgstr ""
+
+#: common/models.py:732
+msgid "Parts are salable by default"
+msgstr ""
+
+#: common/models.py:738 part/models.py:900
+#: templates/js/translated/table_filters.js:46
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
+msgid "Trackable"
+msgstr ""
+
+#: common/models.py:739
+msgid "Parts are trackable by default"
+msgstr ""
+
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
+#: templates/js/translated/table_filters.js:42
+msgid "Virtual"
+msgstr ""
+
+#: common/models.py:746
+msgid "Parts are virtual by default"
+msgstr ""
+
+#: common/models.py:752
+msgid "Show Import in Views"
+msgstr ""
+
+#: common/models.py:753
+msgid "Display the import wizard in some part views"
+msgstr ""
+
+#: common/models.py:759
+msgid "Show Price in Forms"
+msgstr ""
+
+#: common/models.py:760
+msgid "Display part price in some forms"
+msgstr ""
+
+#: common/models.py:771
+msgid "Show Price in BOM"
+msgstr ""
+
+#: common/models.py:772
+msgid "Include pricing information in BOM tables"
+msgstr ""
+
+#: common/models.py:778
+msgid "Show related parts"
+msgstr ""
+
+#: common/models.py:779
+msgid "Display related parts for a part"
+msgstr ""
+
+#: common/models.py:785
+msgid "Create initial stock"
+msgstr ""
+
+#: common/models.py:786
+msgid "Create initial stock on part creation"
+msgstr ""
+
+#: common/models.py:792
+msgid "Internal Prices"
+msgstr ""
+
+#: common/models.py:793
+msgid "Enable internal prices for parts"
+msgstr ""
+
+#: common/models.py:799
+msgid "Internal Price as BOM-Price"
+msgstr ""
+
+#: common/models.py:800
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr ""
+
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
+msgid "Debug Mode"
+msgstr ""
+
+#: common/models.py:822
+msgid "Generate reports in debug mode (HTML output)"
+msgstr ""
+
+#: common/models.py:828
+msgid "Page Size"
+msgstr ""
+
+#: common/models.py:829
+msgid "Default page size for PDF reports"
+msgstr ""
+
+#: common/models.py:839
+msgid "Test Reports"
+msgstr ""
+
+#: common/models.py:840
+msgid "Enable generation of test reports"
+msgstr ""
+
+#: common/models.py:846
+msgid "Stock Expiry"
+msgstr ""
+
+#: common/models.py:847
+msgid "Enable stock expiry functionality"
+msgstr ""
+
+#: common/models.py:853
+msgid "Sell Expired Stock"
+msgstr ""
+
+#: common/models.py:854
+msgid "Allow sale of expired stock"
+msgstr ""
+
+#: common/models.py:860
+msgid "Stock Stale Time"
+msgstr ""
+
+#: common/models.py:861
+msgid "Number of days stock items are considered stale before expiring"
+msgstr ""
+
+#: common/models.py:863
+msgid "days"
+msgstr ""
+
+#: common/models.py:868
+msgid "Build Expired Stock"
+msgstr ""
+
+#: common/models.py:869
+msgid "Allow building with expired stock"
+msgstr ""
+
+#: common/models.py:875
+msgid "Stock Ownership Control"
+msgstr ""
+
+#: common/models.py:876
+msgid "Enable ownership control over stock locations and items"
+msgstr ""
+
+#: common/models.py:882
+msgid "Group by Part"
+msgstr ""
+
+#: common/models.py:883
+msgid "Group stock items by part reference in table views"
+msgstr ""
+
+#: common/models.py:889
+msgid "Build Order Reference Prefix"
+msgstr ""
+
+#: common/models.py:890
+msgid "Prefix value for build order reference"
+msgstr ""
+
+#: common/models.py:895
+msgid "Build Order Reference Regex"
+msgstr ""
+
+#: common/models.py:896
+msgid "Regular expression pattern for matching build order reference"
+msgstr ""
+
+#: common/models.py:900
+msgid "Sales Order Reference Prefix"
+msgstr ""
+
+#: common/models.py:901
+msgid "Prefix value for sales order reference"
+msgstr ""
+
+#: common/models.py:906
+msgid "Purchase Order Reference Prefix"
+msgstr ""
+
+#: common/models.py:907
+msgid "Prefix value for purchase order reference"
+msgstr ""
+
+#: common/models.py:913
+msgid "Enable password forgot"
+msgstr ""
+
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
+msgstr ""
+
+#: common/models.py:919
+msgid "Enable registration"
+msgstr ""
+
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
+msgstr ""
+
+#: common/models.py:925
+msgid "Enable SSO"
+msgstr ""
+
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
+msgstr ""
+
+#: common/models.py:931
+msgid "Email required"
+msgstr ""
+
+#: common/models.py:932
+msgid "Require user to supply mail on signup"
+msgstr ""
+
+#: common/models.py:937
+msgid "Auto-fill SSO users"
+msgstr ""
+
+#: common/models.py:938
+msgid "Automatically fill out user-details from SSO account-data"
+msgstr ""
+
+#: common/models.py:943
+msgid "Mail twice"
+msgstr ""
+
+#: common/models.py:944
+msgid "On signup ask users twice for their mail"
+msgstr ""
+
+#: common/models.py:949
+msgid "Password twice"
+msgstr ""
+
+#: common/models.py:950
+msgid "On signup ask users twice for their password"
+msgstr ""
+
+#: common/models.py:955
+msgid "Group on signup"
+msgstr ""
+
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
+msgstr ""
+
+#: common/models.py:1001
+msgid "Show subscribed parts"
+msgstr ""
+
+#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
+msgid "Inline label display"
+msgstr ""
+
+#: common/models.py:1112
+msgid "Display PDF labels in the browser, instead of downloading as a file"
+msgstr ""
+
+#: common/models.py:1118
+msgid "Inline report display"
+msgstr ""
+
+#: common/models.py:1119
+msgid "Display PDF reports in the browser, instead of downloading as a file"
+msgstr ""
+
+#: common/models.py:1125
+msgid "Search Preview Results"
+msgstr ""
+
+#: common/models.py:1126
+msgid "Number of results to show in search preview window"
+msgstr ""
+
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
+msgid "Show Quantity in Forms"
+msgstr ""
+
+#: common/models.py:1147
+msgid "Display available part quantity in some forms"
+msgstr ""
+
+#: common/models.py:1153
+msgid "Escape Key Closes Forms"
+msgstr ""
+
+#: common/models.py:1154
+msgid "Use the escape key to close modal forms"
+msgstr ""
+
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
+msgid "Price break quantity"
+msgstr ""
+
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
+msgid "Price"
+msgstr ""
+
+#: common/models.py:1234
+msgid "Unit price at specified quantity"
+msgstr ""
+
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
+msgid "Upload File"
+msgstr ""
+
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
+#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
+#: part/templates/part/import_wizard/ajax_match_fields.html:45
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
+msgid "Match Fields"
+msgstr ""
+
+#: common/views.py:95
+msgid "Match Items"
+msgstr ""
+
+#: common/views.py:440
+msgid "Fields matching failed"
+msgstr ""
+
+#: common/views.py:495
+msgid "Parts imported"
+msgstr ""
+
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
+#: order/templates/order/order_wizard/match_parts.html:19
+#: order/templates/order/order_wizard/po_upload.html:40
+#: part/templates/part/bom_upload/match_fields.html:27
+#: part/templates/part/bom_upload/match_parts.html:19
+#: part/templates/part/bom_upload/upload_file.html:50
+#: part/templates/part/import_wizard/match_fields.html:27
+#: part/templates/part/import_wizard/match_references.html:19
+#: part/templates/part/import_wizard/part_upload.html:43
+msgid "Previous Step"
+msgstr ""
+
+#: company/forms.py:24 part/forms.py:46
+msgid "URL"
+msgstr ""
+
+#: company/forms.py:25 part/forms.py:47
+msgid "Image URL"
+msgstr ""
+
+#: company/models.py:105
+msgid "Company description"
+msgstr ""
+
+#: company/models.py:106
+msgid "Description of the company"
+msgstr ""
+
+#: company/models.py:112 company/templates/company/company_base.html:70
+#: templates/js/translated/company.js:349
+msgid "Website"
+msgstr ""
+
+#: company/models.py:113
+msgid "Company website URL"
+msgstr ""
+
+#: company/models.py:117 company/templates/company/company_base.html:88
+msgid "Address"
+msgstr ""
+
+#: company/models.py:118
+msgid "Company address"
+msgstr ""
+
+#: company/models.py:121
+msgid "Phone number"
+msgstr ""
+
+#: company/models.py:122
+msgid "Contact phone number"
+msgstr ""
+
+#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
+msgid "Email"
+msgstr ""
+
+#: company/models.py:125
+msgid "Contact email address"
+msgstr ""
+
+#: company/models.py:128 company/templates/company/company_base.html:109
+msgid "Contact"
+msgstr ""
+
+#: company/models.py:129
+msgid "Point of contact"
+msgstr ""
+
+#: company/models.py:131 company/models.py:348 company/models.py:564
+#: order/models.py:163 part/models.py:797
+#: report/templates/report/inventree_build_order_base.html:165
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
+msgid "Link"
+msgstr ""
+
+#: company/models.py:131
+msgid "Link to external company information"
+msgstr ""
+
+#: company/models.py:139 part/models.py:807
+msgid "Image"
+msgstr ""
+
+#: company/models.py:144
+msgid "is customer"
+msgstr ""
+
+#: company/models.py:144
+msgid "Do you sell items to this company?"
+msgstr ""
+
+#: company/models.py:146
+msgid "is supplier"
+msgstr ""
+
+#: company/models.py:146
+msgid "Do you purchase items from this company?"
+msgstr ""
+
+#: company/models.py:148
+msgid "is manufacturer"
+msgstr ""
+
+#: company/models.py:148
+msgid "Does this company manufacture parts?"
+msgstr ""
+
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
+msgid "Currency"
+msgstr ""
+
+#: company/models.py:155
+msgid "Default currency used for this company"
+msgstr ""
+
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
+msgid "Base Part"
+msgstr ""
+
+#: company/models.py:324 company/models.py:539 order/views.py:912
+msgid "Select part"
+msgstr ""
+
+#: company/models.py:335 company/templates/company/company_base.html:116
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
+msgid "Manufacturer"
+msgstr ""
+
+#: company/models.py:336 templates/js/translated/part.js:230
+msgid "Select manufacturer"
+msgstr ""
+
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
+msgid "MPN"
+msgstr ""
+
+#: company/models.py:343 templates/js/translated/part.js:241
+msgid "Manufacturer Part Number"
+msgstr ""
+
+#: company/models.py:349
+msgid "URL for external manufacturer part link"
+msgstr ""
+
+#: company/models.py:355
+msgid "Manufacturer part description"
+msgstr ""
+
+#: company/models.py:409 company/models.py:558
+#: company/templates/company/manufacturer_part.html:6
+#: company/templates/company/manufacturer_part.html:23
+#: stock/templates/stock/item_base.html:363
+msgid "Manufacturer Part"
+msgstr ""
+
+#: company/models.py:416
+msgid "Parameter name"
+msgstr ""
+
+#: company/models.py:422
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
+msgid "Value"
+msgstr ""
+
+#: company/models.py:423
+msgid "Parameter value"
+msgstr ""
+
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
+msgid "Units"
+msgstr ""
+
+#: company/models.py:430
+msgid "Parameter units"
+msgstr ""
+
+#: company/models.py:502
+msgid "Linked manufacturer part must reference the same base part"
+msgstr ""
+
+#: company/models.py:545 company/templates/company/company_base.html:121
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
+msgid "Supplier"
+msgstr ""
+
+#: company/models.py:546 templates/js/translated/part.js:211
+msgid "Select supplier"
+msgstr ""
+
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
+msgid "SKU"
+msgstr ""
+
+#: company/models.py:552 templates/js/translated/part.js:222
+msgid "Supplier stock keeping unit"
+msgstr ""
+
+#: company/models.py:559
+msgid "Select manufacturer part"
+msgstr ""
+
+#: company/models.py:565
+msgid "URL for external supplier part link"
+msgstr ""
+
+#: company/models.py:571
+msgid "Supplier part description"
+msgstr ""
+
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
+#: report/templates/report/inventree_so_report.html:93
+msgid "Note"
+msgstr ""
+
+#: company/models.py:580 part/models.py:1748
+msgid "base cost"
+msgstr ""
+
+#: company/models.py:580 part/models.py:1748
+msgid "Minimum charge (e.g. stocking fee)"
+msgstr ""
+
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
+msgid "Packaging"
+msgstr ""
+
+#: company/models.py:582
+msgid "Part packaging"
+msgstr ""
+
+#: company/models.py:584 part/models.py:1750
+msgid "multiple"
+msgstr ""
+
+#: company/models.py:584
+msgid "Order multiple"
+msgstr ""
+
+#: company/serializers.py:70
+msgid "Default currency used for this supplier"
+msgstr ""
+
+#: company/serializers.py:71
+msgid "Currency Code"
+msgstr ""
+
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
+msgid "Company"
+msgstr ""
+
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
+msgid "Create Purchase Order"
+msgstr ""
+
+#: company/templates/company/company_base.html:27
+msgid "Edit company information"
+msgstr ""
+
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
+msgid "Delete Company"
+msgstr ""
+
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
+msgstr ""
+
+#: company/templates/company/company_base.html:81
+msgid "Uses default currency"
+msgstr ""
+
+#: company/templates/company/company_base.html:95
+msgid "Phone"
+msgstr ""
+
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
+msgid "Customer"
+msgstr ""
+
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
+msgid "Upload Image"
+msgstr ""
+
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
+msgid "Supplier Parts"
+msgstr ""
+
+#: company/templates/company/detail.html:19
+#: order/templates/order/order_wizard/select_parts.html:44
+msgid "Create new supplier part"
+msgstr ""
+
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
+msgid "New Supplier Part"
+msgstr ""
+
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
+msgid "Options"
+msgstr ""
+
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
+msgid "Order parts"
+msgstr ""
+
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
+msgid "Delete parts"
+msgstr ""
+
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
+msgid "Delete Parts"
+msgstr ""
+
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
+msgid "Manufacturer Parts"
+msgstr ""
+
+#: company/templates/company/detail.html:66
+msgid "Create new manufacturer part"
+msgstr ""
+
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
+msgid "New Manufacturer Part"
+msgstr ""
+
+#: company/templates/company/detail.html:107
+msgid "Supplier Stock"
+msgstr ""
+
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
+#: order/templates/order/purchase_orders.html:8
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
+#: users/models.py:45
+msgid "Purchase Orders"
+msgstr ""
+
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
+msgid "Create new purchase order"
+msgstr ""
+
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
+msgid "New Purchase Order"
+msgstr ""
+
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
+#: order/templates/order/sales_orders.html:8
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
+#: users/models.py:46
+msgid "Sales Orders"
+msgstr ""
+
+#: company/templates/company/detail.html:147
+#: order/templates/order/sales_orders.html:20
+msgid "Create new sales order"
+msgstr ""
+
+#: company/templates/company/detail.html:148
+#: order/templates/order/sales_orders.html:21
+msgid "New Sales Order"
+msgstr ""
+
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
+msgid "Assigned Stock"
+msgstr ""
+
+#: company/templates/company/detail.html:184
+msgid "Company Notes"
+msgstr ""
+
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
+msgid "Delete Supplier Parts?"
+msgstr ""
+
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
+msgid "All selected supplier parts will be deleted"
+msgstr ""
+
+#: company/templates/company/index.html:8
+msgid "Supplier List"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
+msgid "Order part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
+msgid "Edit manufacturer part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
+msgid "Delete manufacturer part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
+msgid "Internal Part"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
+msgid "Suppliers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
+msgid "Delete supplier parts"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
+msgid "Delete"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
+msgid "Parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
+msgid "New Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:152
+msgid "Delete parameters"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
+msgid "Add Parameter"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:233
+msgid "Selected parameters will be deleted"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:245
+msgid "Delete Parameters"
+msgstr ""
+
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:7
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
+msgid "Supplier Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
+msgid "Edit supplier part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
+msgid "Delete supplier part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:138
+#: company/templates/company/supplier_part_navbar.html:12
+msgid "Supplier Part Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
+#: company/templates/company/supplier_part_navbar.html:19
+msgid "Supplier Part Orders"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
+msgid "Order Part"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
+msgid "Pricing Information"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
+msgid "Add Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:210
+msgid "No price break information found"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
+msgid "Delete Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
+msgid "Edit Price Break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:263
+msgid "Edit price break"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:264
+msgid "Delete price break"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
+msgid "Supplier Part Pricing"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
+msgid "Pricing"
+msgstr ""
+
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
+#: company/views.py:50
+msgid "New Supplier"
+msgstr ""
+
+#: company/views.py:56
+msgid "New Manufacturer"
+msgstr ""
+
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
+msgid "Customers"
+msgstr ""
+
+#: company/views.py:62
+msgid "New Customer"
+msgstr ""
+
+#: company/views.py:69
+msgid "Companies"
+msgstr ""
+
+#: company/views.py:70
+msgid "New Company"
+msgstr ""
+
+#: company/views.py:129 part/views.py:580
+msgid "Download Image"
+msgstr ""
+
+#: company/views.py:158 part/views.py:612
+msgid "Image size exceeds maximum allowable size for download"
+msgstr ""
+
+#: company/views.py:165 part/views.py:619
+#, python-brace-format
+msgid "Invalid response: {code}"
+msgstr ""
+
+#: company/views.py:174 part/views.py:628
+msgid "Supplied URL is not a valid image file"
+msgstr ""
+
+#: label/api.py:57 report/api.py:201
+msgid "No valid objects provided to template"
+msgstr ""
+
+#: label/models.py:113
+msgid "Label name"
+msgstr ""
+
+#: label/models.py:120
+msgid "Label description"
+msgstr ""
+
+#: label/models.py:127
+msgid "Label"
+msgstr ""
+
+#: label/models.py:128
+msgid "Label template file"
+msgstr ""
+
+#: label/models.py:134 report/models.py:298
+msgid "Enabled"
+msgstr ""
+
+#: label/models.py:135
+msgid "Label template is enabled"
+msgstr ""
+
+#: label/models.py:140
+msgid "Width [mm]"
+msgstr ""
+
+#: label/models.py:141
+msgid "Label width, specified in mm"
+msgstr ""
+
+#: label/models.py:147
+msgid "Height [mm]"
+msgstr ""
+
+#: label/models.py:148
+msgid "Label height, specified in mm"
+msgstr ""
+
+#: label/models.py:154 report/models.py:291
+msgid "Filename Pattern"
+msgstr ""
+
+#: label/models.py:155
+msgid "Pattern for generating label filenames"
+msgstr ""
+
+#: label/models.py:258
+msgid "Query filters (comma-separated list of key=value pairs),"
+msgstr ""
+
+#: label/models.py:259 label/models.py:319 label/models.py:366
+#: report/models.py:322 report/models.py:457 report/models.py:495
+msgid "Filters"
+msgstr ""
+
+#: label/models.py:318
+msgid "Query filters (comma-separated list of key=value pairs"
+msgstr ""
+
+#: label/models.py:365
+msgid "Part query filters (comma-separated value of key=value pairs)"
+msgstr ""
+
+#: order/forms.py:26 order/templates/order/order_base.html:52
+msgid "Place order"
+msgstr ""
+
+#: order/forms.py:37 order/templates/order/order_base.html:59
+msgid "Mark order as complete"
+msgstr ""
+
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
+msgid "Cancel order"
+msgstr ""
+
+#: order/forms.py:70
+msgid "Ship order"
+msgstr ""
+
+#: order/forms.py:98
+msgid "Enter stock item serial numbers"
+msgstr ""
+
+#: order/forms.py:104
+msgid "Enter quantity of stock items"
+msgstr ""
+
+#: order/models.py:161
+msgid "Order description"
+msgstr ""
+
+#: order/models.py:163
+msgid "Link to external page"
+msgstr ""
+
+#: order/models.py:171
+msgid "Created By"
+msgstr ""
+
+#: order/models.py:178
+msgid "User or group responsible for this order"
+msgstr ""
+
+#: order/models.py:183
+msgid "Order notes"
+msgstr ""
+
+#: order/models.py:250 order/models.py:557
+msgid "Order reference"
+msgstr ""
+
+#: order/models.py:255 order/models.py:572
+msgid "Purchase order status"
+msgstr ""
+
+#: order/models.py:264
+msgid "Company from which the items are being ordered"
+msgstr ""
+
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
+msgid "Supplier Reference"
+msgstr ""
+
+#: order/models.py:267
+msgid "Supplier order reference code"
+msgstr ""
+
+#: order/models.py:274
+msgid "received by"
+msgstr ""
+
+#: order/models.py:279
+msgid "Issue Date"
+msgstr ""
+
+#: order/models.py:280
+msgid "Date order was issued"
+msgstr ""
+
+#: order/models.py:285
+msgid "Target Delivery Date"
+msgstr ""
+
+#: order/models.py:286
+msgid "Expected date for order delivery. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:292
+msgid "Date order was completed"
+msgstr ""
+
+#: order/models.py:321
+msgid "Part supplier must match PO supplier"
+msgstr ""
+
+#: order/models.py:431
+msgid "Quantity must be an integer"
+msgstr ""
+
+#: order/models.py:435
+msgid "Quantity must be a positive number"
+msgstr ""
+
+#: order/models.py:568
+msgid "Company to which the items are being sold"
+msgstr ""
+
+#: order/models.py:574
+msgid "Customer Reference "
+msgstr ""
+
+#: order/models.py:574
+msgid "Customer order reference code"
+msgstr ""
+
+#: order/models.py:579
+msgid "Target date for order completion. Order will be overdue after this date."
+msgstr ""
+
+#: order/models.py:582 templates/js/translated/order.js:1092
+msgid "Shipment Date"
+msgstr ""
+
+#: order/models.py:589
+msgid "shipped by"
+msgstr ""
+
+#: order/models.py:633
+msgid "SalesOrder cannot be shipped as it is not currently pending"
+msgstr ""
+
+#: order/models.py:730
+msgid "Item quantity"
+msgstr ""
+
+#: order/models.py:736
+msgid "Line item reference"
+msgstr ""
+
+#: order/models.py:738
+msgid "Line item notes"
+msgstr ""
+
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
+msgid "Order"
+msgstr ""
+
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
+#: report/templates/report/inventree_po_report.html:77
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
+msgid "Purchase Order"
+msgstr ""
+
+#: order/models.py:790
+msgid "Supplier part"
+msgstr ""
+
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
+msgid "Received"
+msgstr ""
+
+#: order/models.py:798
+msgid "Number of items received"
+msgstr ""
+
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
+msgid "Purchase Price"
+msgstr ""
+
+#: order/models.py:806
+msgid "Unit purchase price"
+msgstr ""
+
+#: order/models.py:814
+msgid "Where does the Purchaser want this item to be stored?"
+msgstr ""
+
+#: order/models.py:866 part/templates/part/part_pricing.html:112
+#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
+msgid "Sale Price"
+msgstr ""
+
+#: order/models.py:867
+msgid "Unit sale price"
+msgstr ""
+
+#: order/models.py:946 order/models.py:948
+msgid "Stock item has not been assigned"
+msgstr ""
+
+#: order/models.py:952
+msgid "Cannot allocate stock item to a line with a different part"
+msgstr ""
+
+#: order/models.py:954
+msgid "Cannot allocate stock to a line without a part"
+msgstr ""
+
+#: order/models.py:957
+msgid "Allocation quantity cannot exceed stock quantity"
+msgstr ""
+
+#: order/models.py:961
+msgid "StockItem is over-allocated"
+msgstr ""
+
+#: order/models.py:967
+msgid "Quantity must be 1 for serialized stock item"
+msgstr ""
+
+#: order/models.py:975
+msgid "Line"
+msgstr ""
+
+#: order/models.py:987
+msgid "Item"
+msgstr ""
+
+#: order/models.py:988
+msgid "Select stock item to allocate"
+msgstr ""
+
+#: order/models.py:991
+msgid "Enter stock allocation quantity"
+msgstr ""
+
+#: order/serializers.py:167
+msgid "Purchase price currency"
+msgstr ""
+
+#: order/serializers.py:202
+msgid "Line Item"
+msgstr ""
+
+#: order/serializers.py:208
+msgid "Line item does not match purchase order"
+msgstr ""
+
+#: order/serializers.py:218 order/serializers.py:286
+msgid "Select destination location for received items"
+msgstr ""
+
+#: order/serializers.py:242
+msgid "Barcode Hash"
+msgstr ""
+
+#: order/serializers.py:243
+msgid "Unique identifier field"
+msgstr ""
+
+#: order/serializers.py:260
+msgid "Barcode is already in use"
+msgstr ""
+
+#: order/serializers.py:298
+msgid "Line items must be provided"
+msgstr ""
+
+#: order/serializers.py:315
+msgid "Destination location must be specified"
+msgstr ""
+
+#: order/serializers.py:326
+msgid "Supplied barcode values must be unique"
+msgstr ""
+
+#: order/serializers.py:568
+msgid "Sale price currency"
+msgstr ""
+
+#: order/templates/order/delete_attachment.html:5
+#: stock/templates/stock/attachment_delete.html:5
+msgid "Are you sure you want to delete this attachment?"
+msgstr ""
+
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
+msgstr ""
+
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
+msgid "Export order to file"
+msgstr ""
+
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
+msgstr ""
+
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
+msgid "Receive items"
+msgstr ""
+
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
+msgid "Order Reference"
+msgstr ""
+
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
+msgid "Order Status"
+msgstr ""
+
+#: order/templates/order/order_base.html:133
+#: report/templates/report/inventree_build_order_base.html:122
+msgid "Issued"
+msgstr ""
+
+#: order/templates/order/order_base.html:203
+msgid "Edit Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_cancel.html:8
+msgid "Cancelling this order means that the order and line items will no longer be editable."
+msgstr ""
+
+#: order/templates/order/order_complete.html:7
+msgid "Mark this order as complete?"
+msgstr ""
+
+#: order/templates/order/order_complete.html:10
+msgid "This order has line items which have not been marked as received."
+msgstr ""
+
+#: order/templates/order/order_complete.html:11
+msgid "Completing this order means that the order and line items will no longer be editable."
+msgstr ""
+
+#: order/templates/order/order_issue.html:8
+msgid "After placing this purchase order, line items will no longer be editable."
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:9
+#: part/templates/part/bom_upload/match_fields.html:9
+#: part/templates/part/import_wizard/ajax_match_fields.html:9
+#: part/templates/part/import_wizard/match_fields.html:9
+msgid "Missing selections for the following required columns"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:20
+#: part/templates/part/bom_upload/match_fields.html:20
+#: part/templates/part/import_wizard/ajax_match_fields.html:20
+#: part/templates/part/import_wizard/match_fields.html:20
+msgid "Duplicate selections found, see below. Fix them then retry submitting."
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:29
+#: order/templates/order/order_wizard/match_parts.html:21
+#: part/templates/part/bom_upload/match_fields.html:29
+#: part/templates/part/bom_upload/match_parts.html:21
+#: part/templates/part/import_wizard/match_fields.html:29
+#: part/templates/part/import_wizard/match_references.html:21
+msgid "Submit Selections"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:35
+#: part/templates/part/bom_upload/match_fields.html:35
+#: part/templates/part/import_wizard/ajax_match_fields.html:28
+#: part/templates/part/import_wizard/match_fields.html:35
+msgid "File Fields"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:42
+#: part/templates/part/bom_upload/match_fields.html:42
+#: part/templates/part/import_wizard/ajax_match_fields.html:35
+#: part/templates/part/import_wizard/match_fields.html:42
+msgid "Remove column"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:60
+#: part/templates/part/bom_upload/match_fields.html:60
+#: part/templates/part/import_wizard/ajax_match_fields.html:53
+#: part/templates/part/import_wizard/match_fields.html:60
+msgid "Duplicate selection"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_fields.html:71
+#: order/templates/order/order_wizard/match_parts.html:52
+#: part/templates/part/bom_upload/match_fields.html:71
+#: part/templates/part/bom_upload/match_parts.html:53
+#: part/templates/part/import_wizard/ajax_match_fields.html:64
+#: part/templates/part/import_wizard/ajax_match_references.html:42
+#: part/templates/part/import_wizard/match_fields.html:71
+#: part/templates/part/import_wizard/match_references.html:49
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
+msgid "Remove row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:12
+#: part/templates/part/bom_upload/match_parts.html:12
+#: part/templates/part/import_wizard/ajax_match_references.html:12
+#: part/templates/part/import_wizard/match_references.html:12
+msgid "Errors exist in the submitted data"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:28
+#: part/templates/part/bom_upload/match_parts.html:28
+#: part/templates/part/import_wizard/ajax_match_references.html:21
+#: part/templates/part/import_wizard/match_references.html:28
+msgid "Row"
+msgstr ""
+
+#: order/templates/order/order_wizard/match_parts.html:29
+msgid "Select Supplier Part"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:11
+msgid "Upload File for Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
+#: part/templates/part/import_wizard/ajax_part_upload.html:10
+#: part/templates/part/import_wizard/part_upload.html:21
+#, python-format
+msgid "Step %(step)s of %(count)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/po_upload.html:48
+msgid "Order is already processed. Files cannot be uploaded."
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:11
+msgid "Step 1 of 2 - Select Part Suppliers"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:16
+msgid "Select suppliers"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:20
+msgid "No purchaseable parts selected"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:33
+msgid "Select Supplier"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:57
+msgid "No price"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:65
+#, python-format
+msgid "Select a supplier for %(name)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_parts.html:77
+#: part/templates/part/set_category.html:32
+msgid "Remove part"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_pos.html:8
+msgid "Step 2 of 2 - Select Purchase Orders"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_pos.html:12
+msgid "Select existing purchase orders, or create new orders."
+msgstr ""
+
+#: order/templates/order/order_wizard/select_pos.html:31
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
+msgid "Items"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_pos.html:32
+msgid "Select Purchase Order"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_pos.html:45
+#, python-format
+msgid "Create new purchase order for %(name)s"
+msgstr ""
+
+#: order/templates/order/order_wizard/select_pos.html:68
+#, python-format
+msgid "Select a purchase order for %(name)s"
+msgstr ""
+
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
+msgid "Purchase Order Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
+#: order/templates/order/sales_order_detail.html:23
+#: order/templates/order/sales_order_detail.html:191
+msgid "Add Line Item"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:30
+msgid "Receive selected items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:31
+msgid "Receive Items"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
+msgid "Order Notes"
+msgstr ""
+
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
+msgid "Print Order Reports"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
+msgid "This Sales Order has not been fully allocated"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
+msgid "Customer Reference"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:194
+msgid "Edit Sales Order"
+msgstr ""
+
+#: order/templates/order/sales_order_cancel.html:8
+#: order/templates/order/sales_order_ship.html:9
+#: part/templates/part/bom_duplicate.html:12
+#: stock/templates/stock/stockitem_convert.html:13
+msgid "Warning"
+msgstr ""
+
+#: order/templates/order/sales_order_cancel.html:9
+msgid "Cancelling this order means that the order will no longer be editable."
+msgstr ""
+
+#: order/templates/order/sales_order_detail.html:18
+msgid "Sales Order Items"
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:10
+msgid "This order has not been fully allocated. If the order is marked as shipped, it can no longer be adjusted."
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:12
+msgid "Ensure that the order allocation is correct before shipping the order."
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:18
+msgid "Some line items in this order have been over-allocated"
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:20
+msgid "Ensure that this is correct before shipping the order."
+msgstr ""
+
+#: order/templates/order/sales_order_ship.html:27
+msgid "Shipping this order means that the order will no longer be editable."
+msgstr ""
+
+#: order/templates/order/so_allocate_by_serial.html:9
+msgid "Allocate stock items by serial number"
+msgstr ""
+
+#: order/views.py:103
+msgid "Cancel Order"
+msgstr ""
+
+#: order/views.py:112 order/views.py:138
+msgid "Confirm order cancellation"
+msgstr ""
+
+#: order/views.py:115 order/views.py:141
+msgid "Order cannot be cancelled"
+msgstr ""
+
+#: order/views.py:129
+msgid "Cancel sales order"
+msgstr ""
+
+#: order/views.py:155
+msgid "Issue Order"
+msgstr ""
+
+#: order/views.py:164
+msgid "Confirm order placement"
+msgstr ""
+
+#: order/views.py:174
+msgid "Purchase order issued"
+msgstr ""
+
+#: order/views.py:185
+msgid "Complete Order"
+msgstr ""
+
+#: order/views.py:201
+msgid "Confirm order completion"
+msgstr ""
+
+#: order/views.py:212
+msgid "Purchase order completed"
+msgstr ""
+
+#: order/views.py:238
+msgid "Confirm order shipment"
+msgstr ""
+
+#: order/views.py:244
+msgid "Could not ship order"
+msgstr ""
+
+#: order/views.py:291
+msgid "Match Supplier Parts"
+msgstr ""
+
+#: order/views.py:535
+msgid "Update prices"
+msgstr ""
+
+#: order/views.py:793
+#, python-brace-format
+msgid "Ordered {n} parts"
+msgstr ""
+
+#: order/views.py:846
+msgid "Allocate Serial Numbers"
+msgstr ""
+
+#: order/views.py:891
+#, python-brace-format
+msgid "Allocated {n} items"
+msgstr ""
+
+#: order/views.py:907
+msgid "Select line item"
+msgstr ""
+
+#: order/views.py:938
+#, python-brace-format
+msgid "No matching item for serial {serial}"
+msgstr ""
+
+#: order/views.py:948
+#, python-brace-format
+msgid "{serial} is not in stock"
+msgstr ""
+
+#: order/views.py:956
+#, python-brace-format
+msgid "{serial} already allocated to an order"
+msgstr ""
+
+#: order/views.py:1072
+msgid "Sales order not found"
+msgstr ""
+
+#: order/views.py:1078
+msgid "Price not found"
+msgstr ""
+
+#: order/views.py:1081
+#, python-brace-format
+msgid "Updated {part} unit-price to {price}"
+msgstr ""
+
+#: order/views.py:1086
+#, python-brace-format
+msgid "Updated {part} unit-price to {price} and quantity to {qty}"
+msgstr ""
+
+#: part/api.py:731
+msgid "Must be greater than zero"
+msgstr ""
+
+#: part/api.py:735
+msgid "Must be a valid quantity"
+msgstr ""
+
+#: part/api.py:750
+msgid "Specify location for initial part stock"
+msgstr ""
+
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
+msgid "This field is required"
+msgstr ""
+
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
+msgid "Default Location"
+msgstr ""
+
+#: part/bom.py:126 part/templates/part/part_base.html:167
+msgid "Available Stock"
+msgstr ""
+
+#: part/forms.py:63
+msgid "File Format"
+msgstr ""
+
+#: part/forms.py:63
+msgid "Select output file format"
+msgstr ""
+
+#: part/forms.py:65
+msgid "Cascading"
+msgstr ""
+
+#: part/forms.py:65
+msgid "Download cascading / multi-level BOM"
+msgstr ""
+
+#: part/forms.py:67
+msgid "Levels"
+msgstr ""
+
+#: part/forms.py:67
+msgid "Select maximum number of BOM levels to export (0 = all levels)"
+msgstr ""
+
+#: part/forms.py:69
+msgid "Include Parameter Data"
+msgstr ""
+
+#: part/forms.py:69
+msgid "Include part parameters data in exported BOM"
+msgstr ""
+
+#: part/forms.py:71
+msgid "Include Stock Data"
+msgstr ""
+
+#: part/forms.py:71
+msgid "Include part stock data in exported BOM"
+msgstr ""
+
+#: part/forms.py:73
+msgid "Include Manufacturer Data"
+msgstr ""
+
+#: part/forms.py:73
+msgid "Include part manufacturer data in exported BOM"
+msgstr ""
+
+#: part/forms.py:75
+msgid "Include Supplier Data"
+msgstr ""
+
+#: part/forms.py:75
+msgid "Include part supplier data in exported BOM"
+msgstr ""
+
+#: part/forms.py:96 part/models.py:2427
+msgid "Parent Part"
+msgstr ""
+
+#: part/forms.py:97 part/templates/part/bom_duplicate.html:7
+msgid "Select parent part to copy BOM from"
+msgstr ""
+
+#: part/forms.py:103
+msgid "Clear existing BOM items"
+msgstr ""
+
+#: part/forms.py:109
+msgid "Confirm BOM duplication"
+msgstr ""
+
+#: part/forms.py:127
+msgid "validate"
+msgstr ""
+
+#: part/forms.py:127
+msgid "Confirm that the BOM is correct"
+msgstr ""
+
+#: part/forms.py:163
+msgid "Select part category"
+msgstr ""
+
+#: part/forms.py:200
+msgid "Add parameter template to same level categories"
+msgstr ""
+
+#: part/forms.py:204
+msgid "Add parameter template to all categories"
+msgstr ""
+
+#: part/forms.py:224
+msgid "Input quantity for price calculation"
+msgstr ""
+
+#: part/models.py:82
+msgid "Default location for parts in this category"
+msgstr ""
+
+#: part/models.py:85
+msgid "Default keywords"
+msgstr ""
+
+#: part/models.py:85
+msgid "Default keywords for parts in this category"
+msgstr ""
+
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
+#: part/templates/part/part_app_base.html:10
+msgid "Part Category"
+msgstr ""
+
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
+msgid "Part Categories"
+msgstr ""
+
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
+msgid "Invalid choice for parent part"
+msgstr ""
+
+#: part/models.py:502 part/models.py:514
+#, python-brace-format
+msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
+msgstr ""
+
+#: part/models.py:611
+msgid "Next available serial numbers are"
+msgstr ""
+
+#: part/models.py:615
+msgid "Next available serial number is"
+msgstr ""
+
+#: part/models.py:620
+msgid "Most recent serial number is"
+msgstr ""
+
+#: part/models.py:715
+msgid "Duplicate IPN not allowed in part settings"
+msgstr ""
+
+#: part/models.py:740
+msgid "Part name"
+msgstr ""
+
+#: part/models.py:747
+msgid "Is Template"
+msgstr ""
+
+#: part/models.py:748
+msgid "Is this part a template part?"
+msgstr ""
+
+#: part/models.py:758
+msgid "Is this part a variant of another part?"
+msgstr ""
+
+#: part/models.py:759
+msgid "Variant Of"
+msgstr ""
+
+#: part/models.py:765
+msgid "Part description"
+msgstr ""
+
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
+msgid "Keywords"
+msgstr ""
+
+#: part/models.py:771
+msgid "Part keywords to improve visibility in search results"
+msgstr ""
+
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
+msgid "Category"
+msgstr ""
+
+#: part/models.py:779
+msgid "Part category"
+msgstr ""
+
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
+msgid "IPN"
+msgstr ""
+
+#: part/models.py:785
+msgid "Internal Part Number"
+msgstr ""
+
+#: part/models.py:791
+msgid "Part revision or version number"
+msgstr ""
+
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
+msgid "Revision"
+msgstr ""
+
+#: part/models.py:814
+msgid "Where is this item normally stored?"
+msgstr ""
+
+#: part/models.py:861 part/templates/part/detail.html:113
+msgid "Default Supplier"
+msgstr ""
+
+#: part/models.py:862
+msgid "Default supplier part"
+msgstr ""
+
+#: part/models.py:869
+msgid "Default Expiry"
+msgstr ""
+
+#: part/models.py:870
+msgid "Expiry time (in days) for stock items of this part"
+msgstr ""
+
+#: part/models.py:875 part/templates/part/part_base.html:178
+msgid "Minimum Stock"
+msgstr ""
+
+#: part/models.py:876
+msgid "Minimum allowed stock level"
+msgstr ""
+
+#: part/models.py:883
+msgid "Stock keeping units for this part"
+msgstr ""
+
+#: part/models.py:889
+msgid "Can this part be built from other parts?"
+msgstr ""
+
+#: part/models.py:895
+msgid "Can this part be used to build other parts?"
+msgstr ""
+
+#: part/models.py:901
+msgid "Does this part have tracking for unique items?"
+msgstr ""
+
+#: part/models.py:906
+msgid "Can this part be purchased from external suppliers?"
+msgstr ""
+
+#: part/models.py:911
+msgid "Can this part be sold to customers?"
+msgstr ""
+
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
+msgid "Active"
+msgstr ""
+
+#: part/models.py:916
+msgid "Is this part active?"
+msgstr ""
+
+#: part/models.py:921
+msgid "Is this a virtual part, such as a software product or license?"
+msgstr ""
+
+#: part/models.py:926
+msgid "Part notes - supports Markdown formatting"
+msgstr ""
+
+#: part/models.py:929
+msgid "BOM checksum"
+msgstr ""
+
+#: part/models.py:929
+msgid "Stored BOM checksum"
+msgstr ""
+
+#: part/models.py:932
+msgid "BOM checked by"
+msgstr ""
+
+#: part/models.py:934
+msgid "BOM checked date"
+msgstr ""
+
+#: part/models.py:938
+msgid "Creation User"
+msgstr ""
+
+#: part/models.py:1750
+msgid "Sell multiple"
+msgstr ""
+
+#: part/models.py:2273
+msgid "Test templates can only be created for trackable parts"
+msgstr ""
+
+#: part/models.py:2290
+msgid "Test with this name already exists for this part"
+msgstr ""
+
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
+msgid "Test Name"
+msgstr ""
+
+#: part/models.py:2311
+msgid "Enter a name for the test"
+msgstr ""
+
+#: part/models.py:2316
+msgid "Test Description"
+msgstr ""
+
+#: part/models.py:2317
+msgid "Enter description for this test"
+msgstr ""
+
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
+msgid "Required"
+msgstr ""
+
+#: part/models.py:2323
+msgid "Is this test required to pass?"
+msgstr ""
+
+#: part/models.py:2328 templates/js/translated/part.js:1484
+msgid "Requires Value"
+msgstr ""
+
+#: part/models.py:2329
+msgid "Does this test require a value when adding a test result?"
+msgstr ""
+
+#: part/models.py:2334 templates/js/translated/part.js:1491
+msgid "Requires Attachment"
+msgstr ""
+
+#: part/models.py:2335
+msgid "Does this test require a file attachment when adding a test result?"
+msgstr ""
+
+#: part/models.py:2346
+#, python-brace-format
+msgid "Illegal character in template name ({c})"
+msgstr ""
+
+#: part/models.py:2382
+msgid "Parameter template name must be unique"
+msgstr ""
+
+#: part/models.py:2390
+msgid "Parameter Name"
+msgstr ""
+
+#: part/models.py:2397
+msgid "Parameter Units"
+msgstr ""
+
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
+msgid "Parameter Template"
+msgstr ""
+
+#: part/models.py:2431
+msgid "Data"
+msgstr ""
+
+#: part/models.py:2431
+msgid "Parameter Value"
+msgstr ""
+
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
+msgid "Default Value"
+msgstr ""
+
+#: part/models.py:2484
+msgid "Default Parameter Value"
+msgstr ""
+
+#: part/models.py:2561
+msgid "Select parent part"
+msgstr ""
+
+#: part/models.py:2569
+msgid "Sub part"
+msgstr ""
+
+#: part/models.py:2570
+msgid "Select part to be used in BOM"
+msgstr ""
+
+#: part/models.py:2576
+msgid "BOM quantity for this BOM item"
+msgstr ""
+
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
+msgid "Optional"
+msgstr ""
+
+#: part/models.py:2578
+msgid "This BOM item is optional"
+msgstr ""
+
+#: part/models.py:2581
+msgid "Overage"
+msgstr ""
+
+#: part/models.py:2582
+msgid "Estimated build wastage quantity (absolute or percentage)"
+msgstr ""
+
+#: part/models.py:2585
+msgid "BOM item reference"
+msgstr ""
+
+#: part/models.py:2588
+msgid "BOM item notes"
+msgstr ""
+
+#: part/models.py:2590
+msgid "Checksum"
+msgstr ""
+
+#: part/models.py:2590
+msgid "BOM line checksum"
+msgstr ""
+
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
+#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
+msgid "Inherited"
+msgstr ""
+
+#: part/models.py:2595
+msgid "This BOM item is inherited by BOMs for variant parts"
+msgstr ""
+
+#: part/models.py:2600 templates/js/translated/bom.js:537
+msgid "Allow Variants"
+msgstr ""
+
+#: part/models.py:2601
+msgid "Stock items for variant parts can be used for this BOM item"
+msgstr ""
+
+#: part/models.py:2686 stock/models.py:371
+msgid "Quantity must be integer value for trackable parts"
+msgstr ""
+
+#: part/models.py:2695 part/models.py:2697
+msgid "Sub part must be specified"
+msgstr ""
+
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
+msgid "Part 1"
+msgstr ""
+
+#: part/models.py:2883
+msgid "Part 2"
+msgstr ""
+
+#: part/models.py:2883
+msgid "Select Related Part"
+msgstr ""
+
+#: part/models.py:2915
+msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
+msgstr ""
+
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
+#: part/templates/part/bom.html:6
+msgid "You do not have permission to edit the BOM."
+msgstr ""
+
+#: part/templates/part/bom.html:15
+#, python-format
+msgid "The BOM for %(part)s has changed, and must be validated.
"
+msgstr ""
+
+#: part/templates/part/bom.html:17
+#, python-format
+msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
+msgstr ""
+
+#: part/templates/part/bom.html:21
+#, python-format
+msgid "The BOM for %(part)s has not been validated."
+msgstr ""
+
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
+msgstr ""
+
+#: part/templates/part/bom.html:34
+msgid "Delete Items"
+msgstr ""
+
+#: part/templates/part/bom_duplicate.html:13
+msgid "This part already has a Bill of Materials"
+msgstr ""
+
+#: part/templates/part/bom_upload/match_parts.html:29
+msgid "Select Part"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
+msgid "Upload Bill of Materials"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:33
+msgid "Requirements for BOM upload"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:35
+msgid "The BOM file must contain the required named columns as provided in the "
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:35
+msgid "BOM Upload Template"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:36
+msgid "Each part must already exist in the database"
+msgstr ""
+
+#: part/templates/part/bom_validate.html:6
+#, python-format
+msgid "Confirm that the Bill of Materials (BOM) is valid for:
%(part)s"
+msgstr ""
+
+#: part/templates/part/bom_validate.html:9
+msgid "This will validate each line in the BOM."
+msgstr ""
+
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:38
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
+msgstr ""
+
+#: part/templates/part/category.html:44
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
+msgstr ""
+
+#: part/templates/part/category.html:49
+msgid "Delete Category"
+msgstr ""
+
+#: part/templates/part/category.html:57
+msgid "Create new part category"
+msgstr ""
+
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
+msgid "Category Path"
+msgstr ""
+
+#: part/templates/part/category.html:84
+msgid "Category Description"
+msgstr ""
+
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
+msgid "Subcategories"
+msgstr ""
+
+#: part/templates/part/category.html:108
+msgid "Parts (Including subcategories)"
+msgstr ""
+
+#: part/templates/part/category.html:145
+msgid "Export Part Data"
+msgstr ""
+
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
+msgid "Export"
+msgstr ""
+
+#: part/templates/part/category.html:149
+msgid "Create new part"
+msgstr ""
+
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
+msgid "New Part"
+msgstr ""
+
+#: part/templates/part/category.html:164
+msgid "Set category"
+msgstr ""
+
+#: part/templates/part/category.html:164
+msgid "Set Category"
+msgstr ""
+
+#: part/templates/part/category.html:168
+msgid "Print Labels"
+msgstr ""
+
+#: part/templates/part/category.html:170
+msgid "Export Data"
+msgstr ""
+
+#: part/templates/part/category.html:184
+msgid "Part Parameters"
+msgstr ""
+
+#: part/templates/part/category.html:261
+msgid "Create Part Category"
+msgstr ""
+
+#: part/templates/part/category.html:288
+msgid "Create Part"
+msgstr ""
+
+#: part/templates/part/category_delete.html:5
+msgid "Are you sure you want to delete category"
+msgstr ""
+
+#: part/templates/part/category_delete.html:8
+#, python-format
+msgid "This category contains %(count)s child categories"
+msgstr ""
+
+#: part/templates/part/category_delete.html:9
+msgid "If this category is deleted, these child categories will be moved to the"
+msgstr ""
+
+#: part/templates/part/category_delete.html:11
+msgid "category"
+msgstr ""
+
+#: part/templates/part/category_delete.html:13
+msgid "top level Parts category"
+msgstr ""
+
+#: part/templates/part/category_delete.html:25
+#, python-format
+msgid "This category contains %(count)s parts"
+msgstr ""
+
+#: part/templates/part/category_delete.html:27
+#, python-format
+msgid "If this category is deleted, these parts will be moved to the parent category %(path)s"
+msgstr ""
+
+#: part/templates/part/category_delete.html:29
+msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
+msgstr ""
+
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
+msgid "Duplicate Part"
+msgstr ""
+
+#: part/templates/part/copy_part.html:10
+#, python-format
+msgid "Make a copy of part '%(full_name)s'."
+msgstr ""
+
+#: part/templates/part/copy_part.html:14
+#: part/templates/part/create_part.html:11
+msgid "Possible Matching Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:15
+#: part/templates/part/create_part.html:12
+msgid "The new part may be a duplicate of these existing parts"
+msgstr ""
+
+#: part/templates/part/create_part.html:17
+#, python-format
+msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
+msgstr ""
+
+#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
+msgid "Part Stock"
+msgstr ""
+
+#: part/templates/part/detail.html:136
+#, python-format
+msgid "Showing stock for all variants of %(full_name)s"
+msgstr ""
+
+#: part/templates/part/detail.html:146
+msgid "Part Test Templates"
+msgstr ""
+
+#: part/templates/part/detail.html:151
+msgid "Add Test Template"
+msgstr ""
+
+#: part/templates/part/detail.html:208
+msgid "Sales Order Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:249
+msgid "Part Variants"
+msgstr ""
+
+#: part/templates/part/detail.html:253
+msgid "Create new variant"
+msgstr ""
+
+#: part/templates/part/detail.html:254
+msgid "New Variant"
+msgstr ""
+
+#: part/templates/part/detail.html:281
+msgid "Add new parameter"
+msgstr ""
+
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
+msgid "Related Parts"
+msgstr ""
+
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
+msgid "Add Related"
+msgstr ""
+
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
+msgid "Bill of Materials"
+msgstr ""
+
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
+msgid "Assemblies"
+msgstr ""
+
+#: part/templates/part/detail.html:401
+msgid "Part Builds"
+msgstr ""
+
+#: part/templates/part/detail.html:426
+msgid "Build Order Allocations"
+msgstr ""
+
+#: part/templates/part/detail.html:436
+msgid "Part Suppliers"
+msgstr ""
+
+#: part/templates/part/detail.html:463
+msgid "Part Manufacturers"
+msgstr ""
+
+#: part/templates/part/detail.html:479
+msgid "Delete manufacturer parts"
+msgstr ""
+
+#: part/templates/part/detail.html:660
+msgid "Delete selected BOM items?"
+msgstr ""
+
+#: part/templates/part/detail.html:661
+msgid "All selected BOM items will be deleted"
+msgstr ""
+
+#: part/templates/part/detail.html:712
+msgid "Create BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
+msgid "Add Test Result Template"
+msgstr ""
+
+#: part/templates/part/detail.html:924
+msgid "Edit Part Notes"
+msgstr ""
+
+#: part/templates/part/detail.html:1076
+#, python-format
+msgid "Purchase Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/detail.html:1088
+#, python-format
+msgid "Unit Price-Cost Difference - %(currency)s"
+msgstr ""
+
+#: part/templates/part/detail.html:1100
+#, python-format
+msgid "Supplier Unit Cost - %(currency)s"
+msgstr ""
+
+#: part/templates/part/detail.html:1189
+#, python-format
+msgid "Unit Price - %(currency)s"
+msgstr ""
+
+#: part/templates/part/import_wizard/ajax_part_upload.html:29
+#: part/templates/part/import_wizard/part_upload.html:51
+msgid "Unsuffitient privileges."
+msgstr ""
+
+#: part/templates/part/import_wizard/part_upload.html:14
+msgid "Import Parts from File"
+msgstr ""
+
+#: part/templates/part/part_app_base.html:12
+msgid "Part List"
+msgstr ""
+
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
+#: part/templates/part/part_base.html:35
+msgid "Subscribe to notifications for this part"
+msgstr ""
+
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
+msgid "Barcode actions"
+msgstr ""
+
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
+msgid "Show QR Code"
+msgstr ""
+
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
+msgid "Print Label"
+msgstr ""
+
+#: part/templates/part/part_base.html:51
+msgid "Show pricing information"
+msgstr ""
+
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
+msgid "Stock actions"
+msgstr ""
+
+#: part/templates/part/part_base.html:63
+msgid "Count part stock"
+msgstr ""
+
+#: part/templates/part/part_base.html:69
+msgid "Transfer part stock"
+msgstr ""
+
+#: part/templates/part/part_base.html:84
+msgid "Part actions"
+msgstr ""
+
+#: part/templates/part/part_base.html:87
+msgid "Duplicate part"
+msgstr ""
+
+#: part/templates/part/part_base.html:90
+msgid "Edit part"
+msgstr ""
+
+#: part/templates/part/part_base.html:93
+msgid "Delete part"
+msgstr ""
+
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
+#, python-format
+msgid "This part is a variant of %(link)s"
+msgstr ""
+
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
+msgid "In Stock"
+msgstr ""
+
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
+msgid "On Order"
+msgstr ""
+
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
+msgid "Required for Build Orders"
+msgstr ""
+
+#: part/templates/part/part_base.html:199
+msgid "Required for Sales Orders"
+msgstr ""
+
+#: part/templates/part/part_base.html:206
+msgid "Allocated to Orders"
+msgstr ""
+
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
+msgid "Can Build"
+msgstr ""
+
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
+msgid "Building"
+msgstr ""
+
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
+msgid "Calculate"
+msgstr ""
+
+#: part/templates/part/part_base.html:363
+msgid "No matching images found"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
+msgid "Supplier Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:26
+#: part/templates/part/part_pricing.html:52
+#: part/templates/part/part_pricing.html:100
+#: part/templates/part/part_pricing.html:115 part/templates/part/prices.html:25
+#: part/templates/part/prices.html:52 part/templates/part/prices.html:103
+#: part/templates/part/prices.html:120
+msgid "Unit Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:32
+#: part/templates/part/part_pricing.html:58
+#: part/templates/part/part_pricing.html:104
+#: part/templates/part/part_pricing.html:119 part/templates/part/prices.html:32
+#: part/templates/part/prices.html:59 part/templates/part/prices.html:108
+#: part/templates/part/prices.html:125
+msgid "Total Cost"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
+#: templates/js/translated/bom.js:520
+msgid "No supplier pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:48 part/templates/part/prices.html:49
+#: part/templates/part/prices.html:243
+msgid "BOM Pricing"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69
+msgid "Unit Purchase Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76
+msgid "Total Purchase Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:81 part/templates/part/prices.html:86
+msgid "Note: BOM pricing is incomplete for this part"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:88 part/templates/part/prices.html:93
+msgid "No BOM pricing available"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:97 part/templates/part/prices.html:102
+msgid "Internal Price"
+msgstr ""
+
+#: part/templates/part/part_pricing.html:128
+#: part/templates/part/prices.html:134
+msgid "No pricing information is available for this part."
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
+msgid "Select from existing images"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:9
+#, python-format
+msgid ""
+"Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+"
Disable the \"Active\" part attribute and re-try.\n"
+" "
+msgstr ""
+
+#: part/templates/part/partial_delete.html:17
+#, python-format
+msgid "Are you sure you want to delete part '%(full_name)s'?"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:22
+#, python-format
+msgid "This part is used in BOMs for %(count)s other parts. If you delete this part, the BOMs for the following parts will be updated"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:32
+#, python-format
+msgid "There are %(count)s stock entries defined for this part. If you delete this part, the following stock entries will also be deleted:"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:43
+#, python-format
+msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:54
+#, python-format
+msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:"
+msgstr ""
+
+#: part/templates/part/partial_delete.html:65
+#, python-format
+msgid "There are %(count)s unique parts tracked for '%(full_name)s'. Deleting this part will permanently remove this tracking information."
+msgstr ""
+
+#: part/templates/part/prices.html:16
+msgid "Pricing ranges"
+msgstr ""
+
+#: part/templates/part/prices.html:22
+msgid "Show supplier cost"
+msgstr ""
+
+#: part/templates/part/prices.html:23
+msgid "Show purchase price"
+msgstr ""
+
+#: part/templates/part/prices.html:50
+msgid "Show BOM cost"
+msgstr ""
+
+#: part/templates/part/prices.html:117
+msgid "Show sale cost"
+msgstr ""
+
+#: part/templates/part/prices.html:118
+msgid "Show sale price"
+msgstr ""
+
+#: part/templates/part/prices.html:140
+msgid "Calculation parameters"
+msgstr ""
+
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
+msgid "Supplier Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:156 part/templates/part/prices.html:177
+#: part/templates/part/prices.html:201 part/templates/part/prices.html:231
+#: part/templates/part/prices.html:257 part/templates/part/prices.html:285
+msgid "Jump to overview"
+msgstr ""
+
+#: part/templates/part/prices.html:181
+msgid "Stock Pricing"
+msgstr ""
+
+#: part/templates/part/prices.html:190
+msgid "No stock pricing history is available for this part."
+msgstr ""
+
+#: part/templates/part/prices.html:200
+msgid "Internal Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:215 part/views.py:1784
+msgid "Add Internal Price Break"
+msgstr ""
+
+#: part/templates/part/prices.html:230
+msgid "BOM Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:256
+msgid "Sale Cost"
+msgstr ""
+
+#: part/templates/part/prices.html:296
+msgid "No sale pice history available for this part."
+msgstr ""
+
+#: part/templates/part/set_category.html:9
+msgid "Set category for the following parts"
+msgstr ""
+
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
+msgid "No Stock"
+msgstr ""
+
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
+msgid "Low Stock"
+msgstr ""
+
+#: part/templates/part/variant_part.html:9
+msgid "Create new part variant"
+msgstr ""
+
+#: part/templates/part/variant_part.html:10
+#, python-format
+msgid "Create a new variant of template '%(full_name)s'."
+msgstr ""
+
+#: part/templatetags/inventree_extras.py:113
+msgid "Unknown database"
+msgstr ""
+
+#: part/views.py:92
+msgid "Set Part Category"
+msgstr ""
+
+#: part/views.py:142
+#, python-brace-format
+msgid "Set category for {n} parts"
+msgstr ""
+
+#: part/views.py:214
+msgid "Match References"
+msgstr ""
+
+#: part/views.py:498
+msgid "None"
+msgstr ""
+
+#: part/views.py:557
+msgid "Part QR Code"
+msgstr ""
+
+#: part/views.py:659
+msgid "Select Part Image"
+msgstr ""
+
+#: part/views.py:685
+msgid "Updated part image"
+msgstr ""
+
+#: part/views.py:688
+msgid "Part image not found"
+msgstr ""
+
+#: part/views.py:700
+msgid "Duplicate BOM"
+msgstr ""
+
+#: part/views.py:730
+msgid "Confirm duplication of BOM from parent"
+msgstr ""
+
+#: part/views.py:772
+msgid "Confirm that the BOM is valid"
+msgstr ""
+
+#: part/views.py:783
+msgid "Validated Bill of Materials"
+msgstr ""
+
+#: part/views.py:856
+msgid "Match Parts"
+msgstr ""
+
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
+msgid "Confirm Part Deletion"
+msgstr ""
+
+#: part/views.py:1251
+msgid "Part was deleted"
+msgstr ""
+
+#: part/views.py:1260
+msgid "Part Pricing"
+msgstr ""
+
+#: part/views.py:1409
+msgid "Create Part Parameter Template"
+msgstr ""
+
+#: part/views.py:1419
+msgid "Edit Part Parameter Template"
+msgstr ""
+
+#: part/views.py:1426
+msgid "Delete Part Parameter Template"
+msgstr ""
+
+#: part/views.py:1485 templates/js/translated/part.js:310
+msgid "Edit Part Category"
+msgstr ""
+
+#: part/views.py:1523
+msgid "Delete Part Category"
+msgstr ""
+
+#: part/views.py:1529
+msgid "Part category was deleted"
+msgstr ""
+
+#: part/views.py:1538
+msgid "Create Category Parameter Template"
+msgstr ""
+
+#: part/views.py:1639
+msgid "Edit Category Parameter Template"
+msgstr ""
+
+#: part/views.py:1695
+msgid "Delete Category Parameter Template"
+msgstr ""
+
+#: part/views.py:1717
+msgid "Added new price break"
+msgstr ""
+
+#: part/views.py:1793
+msgid "Edit Internal Price Break"
+msgstr ""
+
+#: part/views.py:1801
+msgid "Delete Internal Price Break"
+msgstr ""
+
+#: report/models.py:182
+msgid "Template name"
+msgstr ""
+
+#: report/models.py:188
+msgid "Report template file"
+msgstr ""
+
+#: report/models.py:195
+msgid "Report template description"
+msgstr ""
+
+#: report/models.py:201
+msgid "Report revision number (auto-increments)"
+msgstr ""
+
+#: report/models.py:292
+msgid "Pattern for generating report filenames"
+msgstr ""
+
+#: report/models.py:299
+msgid "Report template is enabled"
+msgstr ""
+
+#: report/models.py:323
+msgid "StockItem query filters (comma-separated list of key=value pairs)"
+msgstr ""
+
+#: report/models.py:331
+msgid "Include Installed Tests"
+msgstr ""
+
+#: report/models.py:332
+msgid "Include test results for stock items installed inside assembled item"
+msgstr ""
+
+#: report/models.py:380
+msgid "Build Filters"
+msgstr ""
+
+#: report/models.py:381
+msgid "Build query filters (comma-separated list of key=value pairs"
+msgstr ""
+
+#: report/models.py:423
+msgid "Part Filters"
+msgstr ""
+
+#: report/models.py:424
+msgid "Part query filters (comma-separated list of key=value pairs"
+msgstr ""
+
+#: report/models.py:458
+msgid "Purchase order query filters"
+msgstr ""
+
+#: report/models.py:496
+msgid "Sales order query filters"
+msgstr ""
+
+#: report/models.py:546
+msgid "Snippet"
+msgstr ""
+
+#: report/models.py:547
+msgid "Report snippet file"
+msgstr ""
+
+#: report/models.py:551
+msgid "Snippet file description"
+msgstr ""
+
+#: report/models.py:586
+msgid "Asset"
+msgstr ""
+
+#: report/models.py:587
+msgid "Report asset file"
+msgstr ""
+
+#: report/models.py:590
+msgid "Asset file description"
+msgstr ""
+
+#: report/templates/report/inventree_build_order_base.html:147
+msgid "Required For"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:21
+msgid "Stock Item Test Report"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:83
+msgid "Test Results"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:88
+#: stock/models.py:1855
+msgid "Test"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:89
+#: stock/models.py:1861
+msgid "Result"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:92
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
+msgid "Date"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:103
+msgid "Pass"
+msgstr ""
+
+#: report/templates/report/inventree_test_report_base.html:105
+msgid "Fail"
+msgstr ""
+
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
+msgid "Expiry Date"
+msgstr ""
+
+#: stock/forms.py:92 stock/forms.py:266
+msgid "Expiration date for this stock item"
+msgstr ""
+
+#: stock/forms.py:95
+msgid "Enter unique serial numbers (or leave blank)"
+msgstr ""
+
+#: stock/forms.py:150
+msgid "Destination for serialized stock (by default, will remain in current location)"
+msgstr ""
+
+#: stock/forms.py:152
+msgid "Serial numbers"
+msgstr ""
+
+#: stock/forms.py:152
+msgid "Unique serial numbers (must match quantity)"
+msgstr ""
+
+#: stock/forms.py:154 stock/forms.py:238
+msgid "Add transaction note (optional)"
+msgstr ""
+
+#: stock/forms.py:194
+msgid "Stock item to install"
+msgstr ""
+
+#: stock/forms.py:224
+msgid "Must not exceed available quantity"
+msgstr ""
+
+#: stock/forms.py:236
+msgid "Destination location for uninstalled items"
+msgstr ""
+
+#: stock/forms.py:240
+msgid "Confirm uninstall"
+msgstr ""
+
+#: stock/forms.py:240
+msgid "Confirm removal of installed stock items"
+msgstr ""
+
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
+msgid "Owner"
+msgstr ""
+
+#: stock/models.py:61 stock/models.py:625
+msgid "Select Owner"
+msgstr ""
+
+#: stock/models.py:352
+msgid "StockItem with this serial number already exists"
+msgstr ""
+
+#: stock/models.py:388
+#, python-brace-format
+msgid "Part type ('{pf}') must be {pe}"
+msgstr ""
+
+#: stock/models.py:398 stock/models.py:407
+msgid "Quantity must be 1 for item with a serial number"
+msgstr ""
+
+#: stock/models.py:399
+msgid "Serial number cannot be set if quantity greater than 1"
+msgstr ""
+
+#: stock/models.py:421
+msgid "Item cannot belong to itself"
+msgstr ""
+
+#: stock/models.py:427
+msgid "Item must have a build reference if is_building=True"
+msgstr ""
+
+#: stock/models.py:434
+msgid "Build reference does not point to the same part object"
+msgstr ""
+
+#: stock/models.py:476
+msgid "Parent Stock Item"
+msgstr ""
+
+#: stock/models.py:485
+msgid "Base part"
+msgstr ""
+
+#: stock/models.py:493
+msgid "Select a matching supplier part for this stock item"
+msgstr ""
+
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
+msgid "Stock Location"
+msgstr ""
+
+#: stock/models.py:501
+msgid "Where is this stock item located?"
+msgstr ""
+
+#: stock/models.py:508
+msgid "Packaging this stock item is stored in"
+msgstr ""
+
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
+msgid "Installed In"
+msgstr ""
+
+#: stock/models.py:516
+msgid "Is this item installed in another item?"
+msgstr ""
+
+#: stock/models.py:532
+msgid "Serial number for this item"
+msgstr ""
+
+#: stock/models.py:546
+msgid "Batch code for this stock item"
+msgstr ""
+
+#: stock/models.py:550
+msgid "Stock Quantity"
+msgstr ""
+
+#: stock/models.py:559
+msgid "Source Build"
+msgstr ""
+
+#: stock/models.py:561
+msgid "Build for this stock item"
+msgstr ""
+
+#: stock/models.py:572
+msgid "Source Purchase Order"
+msgstr ""
+
+#: stock/models.py:575
+msgid "Purchase order for this stock item"
+msgstr ""
+
+#: stock/models.py:581
+msgid "Destination Sales Order"
+msgstr ""
+
+#: stock/models.py:588
+msgid "Expiry date for stock item. Stock will be considered expired after this date"
+msgstr ""
+
+#: stock/models.py:601
+msgid "Delete on deplete"
+msgstr ""
+
+#: stock/models.py:601
+msgid "Delete this Stock Item when stock is depleted"
+msgstr ""
+
+#: stock/models.py:611 stock/templates/stock/item.html:111
+msgid "Stock Item Notes"
+msgstr ""
+
+#: stock/models.py:620
+msgid "Single unit purchase price at time of purchase"
+msgstr ""
+
+#: stock/models.py:630
+msgid "Scheduled for deletion"
+msgstr ""
+
+#: stock/models.py:631
+msgid "This StockItem will be deleted by the background worker"
+msgstr ""
+
+#: stock/models.py:1094
+msgid "Part is not set as trackable"
+msgstr ""
+
+#: stock/models.py:1100
+msgid "Quantity must be integer"
+msgstr ""
+
+#: stock/models.py:1106
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({n})"
+msgstr ""
+
+#: stock/models.py:1109
+msgid "Serial numbers must be a list of integers"
+msgstr ""
+
+#: stock/models.py:1112
+msgid "Quantity does not match serial numbers"
+msgstr ""
+
+#: stock/models.py:1119
+#, python-brace-format
+msgid "Serial numbers already exist: {exists}"
+msgstr ""
+
+#: stock/models.py:1277
+msgid "StockItem cannot be moved as it is not in stock"
+msgstr ""
+
+#: stock/models.py:1775
+msgid "Entry notes"
+msgstr ""
+
+#: stock/models.py:1832
+msgid "Value must be provided for this test"
+msgstr ""
+
+#: stock/models.py:1838
+msgid "Attachment must be uploaded for this test"
+msgstr ""
+
+#: stock/models.py:1856
+msgid "Test name"
+msgstr ""
+
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
+msgid "Test result"
+msgstr ""
+
+#: stock/models.py:1868
+msgid "Test output value"
+msgstr ""
+
+#: stock/models.py:1875
+msgid "Test result attachment"
+msgstr ""
+
+#: stock/models.py:1881
+msgid "Test notes"
+msgstr ""
+
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
+msgstr ""
+
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
+msgstr ""
+
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
+msgstr ""
+
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
+msgid "Destination stock location"
+msgstr ""
+
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
+msgid "Stock Tracking Information"
+msgstr ""
+
+#: stock/templates/stock/item.html:29
+msgid "New Entry"
+msgstr ""
+
+#: stock/templates/stock/item.html:48
+msgid "Child Stock Items"
+msgstr ""
+
+#: stock/templates/stock/item.html:55
+msgid "This stock item does not have any child items"
+msgstr ""
+
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
+msgid "Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
+msgid "Test Report"
+msgstr ""
+
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
+msgid "Installed Stock Items"
+msgstr ""
+
+#: stock/templates/stock/item.html:137 stock/views.py:515
+msgid "Install Stock Item"
+msgstr ""
+
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
+msgid "Add Test Result"
+msgstr ""
+
+#: stock/templates/stock/item.html:363
+msgid "Edit Test Result"
+msgstr ""
+
+#: stock/templates/stock/item.html:377
+msgid "Delete Test Result"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
+msgid "Unlink Barcode"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:37
+msgid "Link Barcode"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
+msgid "Scan to Location"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:46
+msgid "Printing actions"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:65
+msgid "Stock adjustment actions"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
+msgid "Count stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
+msgid "Add stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
+msgid "Remove stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:78
+msgid "Serialize stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
+msgid "Transfer stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:85
+msgid "Assign to customer"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:88
+msgid "Return to stock"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:91
+msgid "Uninstall stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:91
+msgid "Uninstall"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:94
+msgid "Install stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:94
+msgid "Install"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:106
+msgid "Convert to variant"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:109
+msgid "Duplicate stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:111
+msgid "Edit stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:114
+msgid "Delete stock item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
+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:168
+msgid "This stock item is in production and cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:169
+msgid "Edit the stock item from the build view."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:182
+msgid "This stock item has not passed all required tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:190
+#, python-format
+msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:198
+#, python-format
+msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:204
+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:208
+msgid "This stock item cannot be deleted as it has child items"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:212
+msgid "This stock item will be automatically deleted when all stock is depleted."
+msgstr ""
+
+#: stock/templates/stock/item_base.html:241
+msgid "previous page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:247
+msgid "next page"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
+msgid "No location set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:297
+msgid "Barcode Identifier"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:339
+msgid "Parent Item"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:357
+msgid "No manufacturer set"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:386
+#, python-format
+msgid "This StockItem expired on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:388
+#, python-format
+msgid "This StockItem expires on %(item.expiry_date)s"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
+msgid "Last Updated"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:400
+msgid "Last Stocktake"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:404
+msgid "No stocktake performed"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:415
+msgid "Tests"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:504
+msgid "Edit Stock Status"
+msgstr ""
+
+#: stock/templates/stock/item_delete.html:9
+msgid "Are you sure you want to delete this stock item?"
+msgstr ""
+
+#: stock/templates/stock/item_delete.html:12
+#, python-format
+msgid "This will remove %(qty)s units of %(full_name)s from stock."
+msgstr ""
+
+#: stock/templates/stock/item_install.html:8
+msgid "Install another Stock Item into this item."
+msgstr ""
+
+#: stock/templates/stock/item_install.html:11
+#: stock/templates/stock/item_install.html:24
+msgid "Stock items can only be installed if they meet the following criteria"
+msgstr ""
+
+#: stock/templates/stock/item_install.html:14
+msgid "The Stock Item links to a Part which is in the BOM for this Stock Item"
+msgstr ""
+
+#: stock/templates/stock/item_install.html:15
+msgid "The Stock Item is currently in stock"
+msgstr ""
+
+#: stock/templates/stock/item_install.html:16
+msgid "The Stock Item is serialized and does not belong to another item"
+msgstr ""
+
+#: stock/templates/stock/item_install.html:21
+msgid "Install this Stock Item in another stock item."
+msgstr ""
+
+#: stock/templates/stock/item_install.html:27
+msgid "The part associated to this Stock Item belongs to another part's BOM"
+msgstr ""
+
+#: stock/templates/stock/item_install.html:28
+msgid "This Stock Item is serialized and does not belong to another item"
+msgstr ""
+
+#: stock/templates/stock/item_serialize.html:5
+msgid "Create serialized items from this stock item."
+msgstr ""
+
+#: stock/templates/stock/item_serialize.html:7
+msgid "Select quantity to serialize, and unique serial numbers."
+msgstr ""
+
+#: stock/templates/stock/location.html:33
+msgid "Check-in Items"
+msgstr ""
+
+#: stock/templates/stock/location.html:61
+msgid "Location actions"
+msgstr ""
+
+#: stock/templates/stock/location.html:63
+msgid "Edit location"
+msgstr ""
+
+#: stock/templates/stock/location.html:65
+msgid "Delete location"
+msgstr ""
+
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
+msgstr ""
+
+#: stock/templates/stock/location.html:76
+msgid "New Location"
+msgstr ""
+
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
+msgstr ""
+
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
+msgid "Sublocations"
+msgstr ""
+
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
+#: templates/stats.html:97 users/models.py:42
+msgid "Stock Locations"
+msgstr ""
+
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
+msgid "Printing Actions"
+msgstr ""
+
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
+msgid "Print labels"
+msgstr ""
+
+#: stock/templates/stock/location_delete.html:7
+msgid "Are you sure you want to delete this stock location?"
+msgstr ""
+
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
+#: stock/templates/stock/stock_uninstall.html:8
+msgid "The following stock items will be uninstalled"
+msgstr ""
+
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
+msgid "Convert Stock Item"
+msgstr ""
+
+#: stock/templates/stock/stockitem_convert.html:8
+#, python-format
+msgid "This stock item is current an instance of %(part)s"
+msgstr ""
+
+#: stock/templates/stock/stockitem_convert.html:9
+msgid "It can be converted to one of the part variants listed below."
+msgstr ""
+
+#: stock/templates/stock/stockitem_convert.html:14
+msgid "This action cannot be easily undone"
+msgstr ""
+
+#: stock/templates/stock/tracking_delete.html:6
+msgid "Are you sure you want to delete this stock tracking entry?"
+msgstr ""
+
+#: stock/views.py:162
+msgid "Edit Stock Location"
+msgstr ""
+
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
+msgid "Owner is required (ownership control is enabled)"
+msgstr ""
+
+#: stock/views.py:284
+msgid "Stock Location QR code"
+msgstr ""
+
+#: stock/views.py:303
+msgid "Assign to Customer"
+msgstr ""
+
+#: stock/views.py:312
+msgid "Customer must be specified"
+msgstr ""
+
+#: stock/views.py:336
+msgid "Return to Stock"
+msgstr ""
+
+#: stock/views.py:345
+msgid "Specify a valid location"
+msgstr ""
+
+#: stock/views.py:356
+msgid "Stock item returned from customer"
+msgstr ""
+
+#: stock/views.py:367
+msgid "Delete All Test Data"
+msgstr ""
+
+#: stock/views.py:384
+msgid "Confirm test data deletion"
+msgstr ""
+
+#: stock/views.py:489
+msgid "Stock Item QR Code"
+msgstr ""
+
+#: stock/views.py:663
+msgid "Uninstall Stock Items"
+msgstr ""
+
+#: stock/views.py:760 templates/js/translated/stock.js:618
+msgid "Confirm stock adjustment"
+msgstr ""
+
+#: stock/views.py:771
+msgid "Uninstalled stock items"
+msgstr ""
+
+#: stock/views.py:793 templates/js/translated/stock.js:288
+msgid "Edit Stock Item"
+msgstr ""
+
+#: stock/views.py:943
+msgid "Create new Stock Location"
+msgstr ""
+
+#: stock/views.py:1044
+msgid "Create new Stock Item"
+msgstr ""
+
+#: stock/views.py:1186 templates/js/translated/stock.js:268
+msgid "Duplicate Stock Item"
+msgstr ""
+
+#: stock/views.py:1268
+msgid "Quantity cannot be negative"
+msgstr ""
+
+#: stock/views.py:1368
+msgid "Delete Stock Location"
+msgstr ""
+
+#: stock/views.py:1381
+msgid "Delete Stock Item"
+msgstr ""
+
+#: stock/views.py:1392
+msgid "Delete Stock Tracking Entry"
+msgstr ""
+
+#: stock/views.py:1399
+msgid "Edit Stock Tracking Entry"
+msgstr ""
+
+#: stock/views.py:1408
+msgid "Add Stock Tracking Entry"
+msgstr ""
+
+#: templates/403.html:5 templates/403.html:11
+msgid "Permission Denied"
+msgstr ""
+
+#: templates/403.html:14
+msgid "You do not have permission to view this page."
+msgstr ""
+
+#: templates/404.html:5 templates/404.html:11
+msgid "Page Not Found"
+msgstr ""
+
+#: templates/404.html:14
+msgid "The requested page does not exist"
+msgstr ""
+
+#: templates/InvenTree/index.html:7
+msgid "Index"
+msgstr ""
+
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
+msgstr ""
+
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
+msgid "Latest Parts"
+msgstr ""
+
+#: templates/InvenTree/index.html:119
+msgid "BOM Waiting Validation"
+msgstr ""
+
+#: templates/InvenTree/index.html:145
+msgid "Recently Updated"
+msgstr ""
+
+#: templates/InvenTree/index.html:168
+msgid "Depleted Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:191
+msgid "Expired Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:202
+msgid "Stale Stock"
+msgstr ""
+
+#: templates/InvenTree/index.html:224
+msgid "Build Orders In Progress"
+msgstr ""
+
+#: templates/InvenTree/index.html:235
+msgid "Overdue Build Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:255
+msgid "Outstanding Purchase Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:266
+msgid "Overdue Purchase Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:286
+msgid "Outstanding Sales Orders"
+msgstr ""
+
+#: templates/InvenTree/index.html:297
+msgid "Overdue Sales Orders"
+msgstr ""
+
+#: templates/InvenTree/search.html:8
+msgid "Search Results"
+msgstr ""
+
+#: templates/InvenTree/search.html:22
+msgid "Enter a search query"
+msgstr ""
+
+#: templates/InvenTree/settings/barcode.html:8
+msgid "Barcode Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/build.html:8
+msgid "Build Order Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/category.html:7
+msgid "Category Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:8
+msgid "Currency Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:19
+msgid "Base Currency"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:24
+msgid "Exchange Rates"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:38
+msgid "Last Update"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:44
+msgid "Never"
+msgstr ""
+
+#: templates/InvenTree/settings/currencies.html:49
+msgid "Update Now"
+msgstr ""
+
+#: templates/InvenTree/settings/global.html:9
+msgid "Server Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
+msgid "Login Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
+msgid "Signup"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:7
+msgid "Part Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:43
+msgid "Part Import"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:47
+msgid "Import Part"
+msgstr ""
+
+#: templates/InvenTree/settings/part.html:61
+msgid "Part Parameter Templates"
+msgstr ""
+
+#: templates/InvenTree/settings/po.html:9
+msgid "Purchase Order Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/report.html:10
+#: templates/InvenTree/settings/user_reports.html:9
+msgid "Report Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/setting.html:28
+msgid "No value set"
+msgstr ""
+
+#: templates/InvenTree/settings/setting.html:39
+msgid "Edit setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
+msgid "No category parameter templates found"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
+msgid "Edit Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
+msgid "Delete Template"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:249
+msgid "No part parameter templates found"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
+#: templates/InvenTree/settings/so.html:7
+msgid "Sales Order Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/stock.html:7
+msgid "Stock Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:18
+#: templates/js/translated/helpers.js:26
+msgid "Edit"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:20
+#: templates/account/password_reset_from_key.html:4
+#: templates/account/password_reset_from_key.html:7
+msgid "Change Password"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:31
+msgid "Username"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:35
+msgid "First Name"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:39
+msgid "Last Name"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:74
+msgid "Verified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:76
+msgid "Unverified"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:78
+msgid "Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:84
+msgid "Make Primary"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:85
+msgid "Re-send Verification"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
+msgid "Remove"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:93
+msgid "Warning:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
+msgid "Social Accounts"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:128
+msgid "You can sign in to your account using any of the following third party accounts:"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:167
+msgid "Add a 3rd Party Account"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:177
+msgid "Language Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
+#, python-format
+msgid "%(lang_translated)s%% translated"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:204
+msgid "No translations available"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:211
+msgid "Set Language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
+#, python-format
+msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_homepage.html:9
+msgid "Home Page Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_labels.html:9
+msgid "Label Settings"
+msgstr ""
+
+#: templates/about.html:10
+msgid "InvenTree Version Information"
+msgstr ""
+
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
+msgid "InvenTree Version"
+msgstr ""
+
+#: templates/about.html:25
+msgid "Development Version"
+msgstr ""
+
+#: templates/about.html:28
+msgid "Up to Date"
+msgstr ""
+
+#: templates/about.html:30
+msgid "Update Available"
+msgstr ""
+
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr ""
+
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr ""
+
+#: templates/about.html:53
+msgid "InvenTree Documentation"
+msgstr ""
+
+#: templates/about.html:58
+msgid "API Version"
+msgstr ""
+
+#: templates/about.html:63
+msgid "Python Version"
+msgstr ""
+
+#: templates/about.html:68
+msgid "Django Version"
+msgstr ""
+
+#: templates/about.html:73
+msgid "View Code on GitHub"
+msgstr ""
+
+#: templates/about.html:78
+msgid "Credits"
+msgstr ""
+
+#: templates/about.html:83
+msgid "Mobile App"
+msgstr ""
+
+#: templates/about.html:88
+msgid "Submit Bug Report"
+msgstr ""
+
+#: templates/about.html:95 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr ""
+
+#: templates/about.html:95
+msgid "copy version information"
+msgstr ""
+
+#: templates/account/email_confirm.html:6
+#: templates/account/email_confirm.html:10
+msgid "Confirm Email Address"
+msgstr ""
+
+#: templates/account/email_confirm.html:16
+#, python-format
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
+msgstr ""
+
+#: templates/account/email_confirm.html:27
+#, python-format
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
+msgstr ""
+
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
+msgid "Sign In"
+msgstr ""
+
+#: templates/account/login.html:21
+#, python-format
+msgid ""
+"Please sign in with one\n"
+"of your existing third party accounts or sign up\n"
+"for a account and sign in below:"
+msgstr ""
+
+#: templates/account/login.html:25
+#, python-format
+msgid ""
+"If you have not created an account yet, then please\n"
+"sign up first."
+msgstr ""
+
+#: templates/account/login.html:42
+msgid "Forgot Password?"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
+msgid "or use SSO"
+msgstr ""
+
+#: templates/account/logout.html:5 templates/account/logout.html:8
+#: templates/account/logout.html:20
+msgid "Sign Out"
+msgstr ""
+
+#: templates/account/logout.html:10
+msgid "Are you sure you want to sign out?"
+msgstr ""
+
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
+#: templates/account/password_reset.html:5
+#: templates/account/password_reset.html:12
+msgid "Password Reset"
+msgstr ""
+
+#: templates/account/password_reset.html:18
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
+msgstr ""
+
+#: templates/account/password_reset.html:23
+msgid "Reset My Password"
+msgstr ""
+
+#: templates/account/password_reset.html:27 templates/account/signup.html:36
+msgid "This function is currently disabled. Please contact an administrator."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:7
+msgid "Bad Token"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:11
+#, python-format
+msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
+msgstr ""
+
+#: templates/account/password_reset_from_key.html:22
+msgid "Your password is now changed."
+msgstr ""
+
+#: templates/account/signup.html:11 templates/account/signup.html:22
+msgid "Sign Up"
+msgstr ""
+
+#: templates/account/signup.html:13
+#, python-format
+msgid "Already have an account? Then please sign in."
+msgstr ""
+
+#: templates/account/signup.html:27
+msgid "Or use a SSO-provider for signup"
+msgstr ""
+
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
+#: templates/image_download.html:8
+msgid "Specify URL for downloading image"
+msgstr ""
+
+#: templates/image_download.html:11
+msgid "Must be a valid image URL"
+msgstr ""
+
+#: templates/image_download.html:12
+msgid "Remote server must be accessible"
+msgstr ""
+
+#: templates/image_download.html:13
+msgid "Remote image must not exceed maximum allowable file size"
+msgstr ""
+
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
+msgid "No Response"
+msgstr ""
+
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
+msgid "No response from the InvenTree server"
+msgstr ""
+
+#: templates/js/translated/api.js:191
+msgid "Error 400: Bad request"
+msgstr ""
+
+#: templates/js/translated/api.js:192
+msgid "API request returned error code 400"
+msgstr ""
+
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
+msgid "Error 401: Not Authenticated"
+msgstr ""
+
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
+msgid "Authentication credentials not supplied"
+msgstr ""
+
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
+msgid "Error 403: Permission Denied"
+msgstr ""
+
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
+msgid "You do not have the required permissions to access this function"
+msgstr ""
+
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
+msgid "Error 404: Resource Not Found"
+msgstr ""
+
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
+msgid "The requested resource could not be located on the server"
+msgstr ""
+
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
+msgid "Error 408: Timeout"
+msgstr ""
+
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
+msgid "Connection timeout while requesting data from server"
+msgstr ""
+
+#: templates/js/translated/api.js:215
+msgid "Unhandled Error Code"
+msgstr ""
+
+#: templates/js/translated/api.js:216
+msgid "Error code"
+msgstr ""
+
+#: templates/js/translated/attachment.js:27
+msgid "No attachments found"
+msgstr ""
+
+#: templates/js/translated/attachment.js:95
+msgid "Upload Date"
+msgstr ""
+
+#: templates/js/translated/attachment.js:108
+msgid "Edit attachment"
+msgstr ""
+
+#: templates/js/translated/attachment.js:115
+msgid "Delete attachment"
+msgstr ""
+
+#: templates/js/translated/barcode.js:29
+msgid "Scan barcode data here using wedge scanner"
+msgstr ""
+
+#: templates/js/translated/barcode.js:31
+msgid "Enter barcode data"
+msgstr ""
+
+#: templates/js/translated/barcode.js:35
+msgid "Barcode"
+msgstr ""
+
+#: templates/js/translated/barcode.js:53
+msgid "Enter optional notes for stock transfer"
+msgstr ""
+
+#: templates/js/translated/barcode.js:54
+msgid "Enter notes"
+msgstr ""
+
+#: templates/js/translated/barcode.js:92
+msgid "Server error"
+msgstr ""
+
+#: templates/js/translated/barcode.js:113
+msgid "Unknown response from server"
+msgstr ""
+
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
+msgid "Invalid server response"
+msgstr ""
+
+#: templates/js/translated/barcode.js:233
+msgid "Scan barcode data below"
+msgstr ""
+
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
+msgid "Scan Barcode"
+msgstr ""
+
+#: templates/js/translated/barcode.js:291
+msgid "No URL in response"
+msgstr ""
+
+#: templates/js/translated/barcode.js:309
+msgid "Link Barcode to Stock Item"
+msgstr ""
+
+#: templates/js/translated/barcode.js:332
+msgid "This will remove the association between this stock item and the barcode"
+msgstr ""
+
+#: templates/js/translated/barcode.js:338
+msgid "Unlink"
+msgstr ""
+
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
+msgid "Remove stock item"
+msgstr ""
+
+#: templates/js/translated/barcode.js:439
+msgid "Check Stock Items into Location"
+msgstr ""
+
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
+msgid "Check In"
+msgstr ""
+
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
+msgid "Error transferring stock"
+msgstr ""
+
+#: templates/js/translated/barcode.js:507
+msgid "Stock Item already scanned"
+msgstr ""
+
+#: templates/js/translated/barcode.js:511
+msgid "Stock Item already in this location"
+msgstr ""
+
+#: templates/js/translated/barcode.js:518
+msgid "Added stock item"
+msgstr ""
+
+#: templates/js/translated/barcode.js:525
+msgid "Barcode does not match Stock Item"
+msgstr ""
+
+#: templates/js/translated/barcode.js:568
+msgid "Check Into Location"
+msgstr ""
+
+#: templates/js/translated/barcode.js:633
+msgid "Barcode does not match a valid location"
+msgstr ""
+
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
+msgid "Open subassembly"
+msgstr ""
+
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:500
+msgid "Purchase Price Range"
+msgstr ""
+
+#: templates/js/translated/bom.js:507
+msgid "Purchase Price Average"
+msgstr ""
+
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
+msgid "View BOM"
+msgstr ""
+
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
+msgid "Actions"
+msgstr ""
+
+#: templates/js/translated/bom.js:616
+msgid "Validate BOM Item"
+msgstr ""
+
+#: templates/js/translated/bom.js:618
+msgid "This line has been validated"
+msgstr ""
+
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
+msgid "Edit BOM Item"
+msgstr ""
+
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
+msgid "Delete BOM Item"
+msgstr ""
+
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
+msgid "No BOM items found"
+msgstr ""
+
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
+msgstr ""
+
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+msgid "Required Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
+msgid "Quantity Per"
+msgstr ""
+
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
+msgid "Allocated"
+msgstr ""
+
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
+msgid "Build stock"
+msgstr ""
+
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
+msgid "Order stock"
+msgstr ""
+
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
+msgid "Allocate stock"
+msgstr ""
+
+#: templates/js/translated/build.js:1262
+msgid "Specify stock allocation quantity"
+msgstr ""
+
+#: templates/js/translated/build.js:1334
+msgid "You must select at least one part to allocate"
+msgstr ""
+
+#: templates/js/translated/build.js:1348
+msgid "Select source location (leave blank to take from all locations)"
+msgstr ""
+
+#: templates/js/translated/build.js:1377
+msgid "Confirm stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1378
+msgid "Allocate Stock Items to Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:1389
+msgid "No matching stock locations"
+msgstr ""
+
+#: templates/js/translated/build.js:1451
+msgid "No matching stock items"
+msgstr ""
+
+#: templates/js/translated/build.js:1576
+msgid "No builds matching query"
+msgstr ""
+
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
+msgid "Select"
+msgstr ""
+
+#: templates/js/translated/build.js:1613
+msgid "Build order is overdue"
+msgstr ""
+
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
+msgid "No user information"
+msgstr ""
+
+#: templates/js/translated/build.js:1686
+msgid "No information"
+msgstr ""
+
+#: templates/js/translated/build.js:1737
+msgid "No parts allocated for"
+msgstr ""
+
+#: templates/js/translated/company.js:65
+msgid "Add Manufacturer"
+msgstr ""
+
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
+msgid "Add Manufacturer Part"
+msgstr ""
+
+#: templates/js/translated/company.js:99
+msgid "Edit Manufacturer Part"
+msgstr ""
+
+#: templates/js/translated/company.js:108
+msgid "Delete Manufacturer Part"
+msgstr ""
+
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
+msgid "Add Supplier"
+msgstr ""
+
+#: templates/js/translated/company.js:193
+msgid "Add Supplier Part"
+msgstr ""
+
+#: templates/js/translated/company.js:208
+msgid "Edit Supplier Part"
+msgstr ""
+
+#: templates/js/translated/company.js:218
+msgid "Delete Supplier Part"
+msgstr ""
+
+#: templates/js/translated/company.js:265
+msgid "Edit Company"
+msgstr ""
+
+#: templates/js/translated/company.js:286
+msgid "Add new Company"
+msgstr ""
+
+#: templates/js/translated/company.js:363
+msgid "Parts Supplied"
+msgstr ""
+
+#: templates/js/translated/company.js:372
+msgid "Parts Manufactured"
+msgstr ""
+
+#: templates/js/translated/company.js:386
+msgid "No company information found"
+msgstr ""
+
+#: templates/js/translated/company.js:405
+msgid "The following manufacturer parts will be deleted"
+msgstr ""
+
+#: templates/js/translated/company.js:422
+msgid "Delete Manufacturer Parts"
+msgstr ""
+
+#: templates/js/translated/company.js:477
+msgid "No manufacturer parts found"
+msgstr ""
+
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
+msgid "Template part"
+msgstr ""
+
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
+msgid "Assembled part"
+msgstr ""
+
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
+msgid "No parameters found"
+msgstr ""
+
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
+msgid "Edit parameter"
+msgstr ""
+
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
+msgid "Delete parameter"
+msgstr ""
+
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
+msgid "Edit Parameter"
+msgstr ""
+
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
+msgid "Delete Parameter"
+msgstr ""
+
+#: templates/js/translated/company.js:734
+msgid "No supplier parts found"
+msgstr ""
+
+#: templates/js/translated/filters.js:178
+#: templates/js/translated/filters.js:420
+msgid "true"
+msgstr ""
+
+#: templates/js/translated/filters.js:182
+#: templates/js/translated/filters.js:421
+msgid "false"
+msgstr ""
+
+#: templates/js/translated/filters.js:204
+msgid "Select filter"
+msgstr ""
+
+#: templates/js/translated/filters.js:286
+msgid "Reload data"
+msgstr ""
+
+#: templates/js/translated/filters.js:290
+msgid "Add new filter"
+msgstr ""
+
+#: templates/js/translated/filters.js:293
+msgid "Clear all filters"
+msgstr ""
+
+#: templates/js/translated/filters.js:329
+msgid "Create filter"
+msgstr ""
+
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
+msgid "Action Prohibited"
+msgstr ""
+
+#: templates/js/translated/forms.js:351
+msgid "Create operation not allowed"
+msgstr ""
+
+#: templates/js/translated/forms.js:366
+msgid "Update operation not allowed"
+msgstr ""
+
+#: templates/js/translated/forms.js:380
+msgid "Delete operation not allowed"
+msgstr ""
+
+#: templates/js/translated/forms.js:394
+msgid "View operation not allowed"
+msgstr ""
+
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
+msgid "Form errors exist"
+msgstr ""
+
+#: templates/js/translated/forms.js:1457
+msgid "No results found"
+msgstr ""
+
+#: templates/js/translated/forms.js:1661
+msgid "Searching"
+msgstr ""
+
+#: templates/js/translated/forms.js:1878
+msgid "Clear input"
+msgstr ""
+
+#: templates/js/translated/helpers.js:19
+msgid "YES"
+msgstr ""
+
+#: templates/js/translated/helpers.js:21
+msgid "NO"
+msgstr ""
+
+#: templates/js/translated/label.js:30
+msgid "Stock item(s) must be selected before printing labels"
+msgstr ""
+
+#: templates/js/translated/label.js:48 templates/js/translated/label.js:98
+#: templates/js/translated/label.js:153
+msgid "No Labels Found"
+msgstr ""
+
+#: templates/js/translated/label.js:49
+msgid "No labels found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/translated/label.js:80
+msgid "Select Stock Locations"
+msgstr ""
+
+#: templates/js/translated/label.js:81
+msgid "Stock location(s) must be selected before printing labels"
+msgstr ""
+
+#: templates/js/translated/label.js:99
+msgid "No labels found which match selected stock location(s)"
+msgstr ""
+
+#: templates/js/translated/label.js:135
+msgid "Part(s) must be selected before printing labels"
+msgstr ""
+
+#: templates/js/translated/label.js:154
+msgid "No labels found which match the selected part(s)"
+msgstr ""
+
+#: templates/js/translated/label.js:228
+msgid "stock items selected"
+msgstr ""
+
+#: templates/js/translated/label.js:236
+msgid "Select Label"
+msgstr ""
+
+#: templates/js/translated/label.js:251
+msgid "Select Label Template"
+msgstr ""
+
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
+msgid "Cancel"
+msgstr ""
+
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
+msgid "Submit"
+msgstr ""
+
+#: templates/js/translated/modals.js:117
+msgid "Form Title"
+msgstr ""
+
+#: templates/js/translated/modals.js:380
+msgid "Waiting for server..."
+msgstr ""
+
+#: templates/js/translated/modals.js:539
+msgid "Show Error Information"
+msgstr ""
+
+#: templates/js/translated/modals.js:592
+msgid "Accept"
+msgstr ""
+
+#: templates/js/translated/modals.js:649
+msgid "Loading Data"
+msgstr ""
+
+#: templates/js/translated/modals.js:915
+msgid "Invalid response from server"
+msgstr ""
+
+#: templates/js/translated/modals.js:915
+msgid "Form data missing from server response"
+msgstr ""
+
+#: templates/js/translated/modals.js:927
+msgid "Error posting form data"
+msgstr ""
+
+#: templates/js/translated/modals.js:1024
+msgid "JSON response missing form data"
+msgstr ""
+
+#: templates/js/translated/modals.js:1039
+msgid "Error 400: Bad Request"
+msgstr ""
+
+#: templates/js/translated/modals.js:1040
+msgid "Server returned error code 400"
+msgstr ""
+
+#: templates/js/translated/modals.js:1063
+msgid "Error requesting form data"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:40
+msgid "Company ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:77
+msgid "Stock ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:130
+msgid "Location ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:147
+msgid "Build ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:182
+msgid "Part ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:236
+msgid "Order ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:256
+msgid "Category ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:293
+msgid "Manufacturer Part ID"
+msgstr ""
+
+#: templates/js/translated/model_renderers.js:322
+msgid "Supplier Part ID"
+msgstr ""
+
+#: templates/js/translated/order.js:48
+msgid "Add Customer"
+msgstr ""
+
+#: templates/js/translated/order.js:73
+msgid "Create Sales Order"
+msgstr ""
+
+#: templates/js/translated/order.js:208
+msgid "Export Order"
+msgstr ""
+
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
+msgid "Format"
+msgstr ""
+
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
+msgid "Select file format"
+msgstr ""
+
+#: templates/js/translated/order.js:300
+msgid "Select Line Items"
+msgstr ""
+
+#: templates/js/translated/order.js:301
+msgid "At least one line item must be selected"
+msgstr ""
+
+#: templates/js/translated/order.js:326
+msgid "Quantity to receive"
+msgstr ""
+
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
+msgid "Stock Status"
+msgstr ""
+
+#: templates/js/translated/order.js:427
+msgid "Order Code"
+msgstr ""
+
+#: templates/js/translated/order.js:428
+msgid "Ordered"
+msgstr ""
+
+#: templates/js/translated/order.js:430
+msgid "Receive"
+msgstr ""
+
+#: templates/js/translated/order.js:449
+msgid "Confirm receipt of items"
+msgstr ""
+
+#: templates/js/translated/order.js:450
+msgid "Receive Purchase Order Items"
+msgstr ""
+
+#: templates/js/translated/order.js:627
+msgid "No purchase orders found"
+msgstr ""
+
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
+msgid "Order is overdue"
+msgstr ""
+
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
+msgid "Edit Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
+msgid "Delete Line Item"
+msgstr ""
+
+#: templates/js/translated/order.js:801
+msgid "No line items found"
+msgstr ""
+
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
+msgid "Total"
+msgstr ""
+
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
+msgid "Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
+msgstr ""
+
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
+msgid "Edit line item"
+msgstr ""
+
+#: templates/js/translated/order.js:976
+msgid "Delete line item"
+msgstr ""
+
+#: templates/js/translated/order.js:980
+msgid "Receive line item"
+msgstr ""
+
+#: templates/js/translated/order.js:1017
+msgid "No sales orders found"
+msgstr ""
+
+#: templates/js/translated/order.js:1055
+msgid "Invalid Customer"
+msgstr ""
+
+#: templates/js/translated/order.js:1133
+msgid "No sales order allocations found"
+msgstr ""
+
+#: templates/js/translated/order.js:1226
+msgid "Edit Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1244
+msgid "Delete Stock Allocation"
+msgstr ""
+
+#: templates/js/translated/order.js:1286
+msgid "Stock location not specified"
+msgstr ""
+
+#: templates/js/translated/order.js:1535
+msgid "Fulfilled"
+msgstr ""
+
+#: templates/js/translated/order.js:1579
+msgid "Allocate serial numbers"
+msgstr ""
+
+#: templates/js/translated/order.js:1585
+msgid "Purchase stock"
+msgstr ""
+
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
+msgid "Calculate price"
+msgstr ""
+
+#: templates/js/translated/order.js:1596
+msgid "Delete line item "
+msgstr ""
+
+#: templates/js/translated/order.js:1719
+msgid "Allocate Stock Item"
+msgstr ""
+
+#: templates/js/translated/order.js:1779
+msgid "Update Unit Price"
+msgstr ""
+
+#: templates/js/translated/order.js:1793
+msgid "No matching line items"
+msgstr ""
+
+#: templates/js/translated/part.js:51
+msgid "Part Attributes"
+msgstr ""
+
+#: templates/js/translated/part.js:55
+msgid "Part Creation Options"
+msgstr ""
+
+#: templates/js/translated/part.js:59
+msgid "Part Duplication Options"
+msgstr ""
+
+#: templates/js/translated/part.js:63
+msgid "Supplier Options"
+msgstr ""
+
+#: templates/js/translated/part.js:77
+msgid "Add Part Category"
+msgstr ""
+
+#: templates/js/translated/part.js:166
+msgid "Create Initial Stock"
+msgstr ""
+
+#: templates/js/translated/part.js:167
+msgid "Create an initial stock item for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:174
+msgid "Initial Stock Quantity"
+msgstr ""
+
+#: templates/js/translated/part.js:175
+msgid "Specify initial stock quantity for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:182
+msgid "Select destination stock location"
+msgstr ""
+
+#: templates/js/translated/part.js:193
+msgid "Copy Category Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:194
+msgid "Copy parameter templates from selected part category"
+msgstr ""
+
+#: templates/js/translated/part.js:202
+msgid "Add Supplier Data"
+msgstr ""
+
+#: templates/js/translated/part.js:203
+msgid "Create initial supplier data for this part"
+msgstr ""
+
+#: templates/js/translated/part.js:259
+msgid "Copy Image"
+msgstr ""
+
+#: templates/js/translated/part.js:260
+msgid "Copy image from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:268
+msgid "Copy bill of materials from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:275
+msgid "Copy Parameters"
+msgstr ""
+
+#: templates/js/translated/part.js:276
+msgid "Copy parameter data from original part"
+msgstr ""
+
+#: templates/js/translated/part.js:289
+msgid "Parent part category"
+msgstr ""
+
+#: templates/js/translated/part.js:333
+msgid "Edit Part"
+msgstr ""
+
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
+msgid "Trackable part"
+msgstr ""
+
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
+msgid "Virtual part"
+msgstr ""
+
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
+msgstr ""
+
+#: templates/js/translated/part.js:461
+msgid "Salable part"
+msgstr ""
+
+#: templates/js/translated/part.js:576
+msgid "No variants found"
+msgstr ""
+
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
+msgid "No parts found"
+msgstr ""
+
+#: templates/js/translated/part.js:1026
+msgid "No category"
+msgstr ""
+
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
+msgid "Low stock"
+msgstr ""
+
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
+msgid "Path"
+msgstr ""
+
+#: templates/js/translated/part.js:1453
+msgid "No test templates matching query"
+msgstr ""
+
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
+msgid "Edit test result"
+msgstr ""
+
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
+msgid "Delete test result"
+msgstr ""
+
+#: templates/js/translated/part.js:1511
+msgid "This test is defined for a parent part"
+msgstr ""
+
+#: templates/js/translated/part.js:1533
+msgid "Edit Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1547
+msgid "Delete Test Result Template"
+msgstr ""
+
+#: templates/js/translated/part.js:1572
+#, python-brace-format
+msgid "No ${human_name} information found"
+msgstr ""
+
+#: templates/js/translated/part.js:1627
+#, python-brace-format
+msgid "Edit ${human_name}"
+msgstr ""
+
+#: templates/js/translated/part.js:1628
+#, python-brace-format
+msgid "Delete ${human_name}"
+msgstr ""
+
+#: templates/js/translated/part.js:1729
+msgid "Single Price"
+msgstr ""
+
+#: templates/js/translated/part.js:1748
+msgid "Single Price Difference"
+msgstr ""
+
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
+msgid "Parent stock location"
+msgstr ""
+
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
+msgid "Export Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:401
+msgid "Include Sublocations"
+msgstr ""
+
+#: templates/js/translated/stock.js:402
+msgid "Include stock items in sublocations"
+msgstr ""
+
+#: templates/js/translated/stock.js:444
+msgid "Transfer Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:445
+msgid "Move"
+msgstr ""
+
+#: templates/js/translated/stock.js:451
+msgid "Count Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:452
+msgid "Count"
+msgstr ""
+
+#: templates/js/translated/stock.js:456
+msgid "Remove Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:457
+msgid "Take"
+msgstr ""
+
+#: templates/js/translated/stock.js:461
+msgid "Add Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:462 users/models.py:200
+msgid "Add"
+msgstr ""
+
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
+msgid "Delete Stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:555
+msgid "Quantity cannot be adjusted for serialized stock"
+msgstr ""
+
+#: templates/js/translated/stock.js:555
+msgid "Specify stock quantity"
+msgstr ""
+
+#: templates/js/translated/stock.js:595
+msgid "You must select at least one available stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:753
+msgid "PASS"
+msgstr ""
+
+#: templates/js/translated/stock.js:755
+msgid "FAIL"
+msgstr ""
+
+#: templates/js/translated/stock.js:760
+msgid "NO RESULT"
+msgstr ""
+
+#: templates/js/translated/stock.js:782
+msgid "Add test result"
+msgstr ""
+
+#: templates/js/translated/stock.js:808
+msgid "No test results found"
+msgstr ""
+
+#: templates/js/translated/stock.js:865
+msgid "Test Date"
+msgstr ""
+
+#: templates/js/translated/stock.js:972
+msgid "In production"
+msgstr ""
+
+#: templates/js/translated/stock.js:976
+msgid "Installed in Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:980
+msgid "Shipped to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:984
+msgid "Assigned to Sales Order"
+msgstr ""
+
+#: templates/js/translated/stock.js:990
+msgid "No stock location set"
+msgstr ""
+
+#: templates/js/translated/stock.js:1148
+msgid "Stock item is in production"
+msgstr ""
+
+#: templates/js/translated/stock.js:1153
+msgid "Stock item assigned to sales order"
+msgstr ""
+
+#: templates/js/translated/stock.js:1156
+msgid "Stock item assigned to customer"
+msgstr ""
+
+#: templates/js/translated/stock.js:1160
+msgid "Stock item has expired"
+msgstr ""
+
+#: templates/js/translated/stock.js:1162
+msgid "Stock item will expire soon"
+msgstr ""
+
+#: templates/js/translated/stock.js:1166
+msgid "Stock item has been allocated"
+msgstr ""
+
+#: templates/js/translated/stock.js:1170
+msgid "Stock item has been installed in another item"
+msgstr ""
+
+#: templates/js/translated/stock.js:1177
+msgid "Stock item has been rejected"
+msgstr ""
+
+#: templates/js/translated/stock.js:1179
+msgid "Stock item is lost"
+msgstr ""
+
+#: templates/js/translated/stock.js:1181
+msgid "Stock item is destroyed"
+msgstr ""
+
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
+msgid "Depleted"
+msgstr ""
+
+#: templates/js/translated/stock.js:1235
+msgid "Stocktake"
+msgstr ""
+
+#: templates/js/translated/stock.js:1308
+msgid "Supplier part not specified"
+msgstr ""
+
+#: templates/js/translated/stock.js:1346
+msgid "No stock items matching query"
+msgstr ""
+
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
+msgid "items"
+msgstr ""
+
+#: templates/js/translated/stock.js:1455
+msgid "batches"
+msgstr ""
+
+#: templates/js/translated/stock.js:1482
+msgid "locations"
+msgstr ""
+
+#: templates/js/translated/stock.js:1484
+msgid "Undefined location"
+msgstr ""
+
+#: templates/js/translated/stock.js:1658
+msgid "Set Stock Status"
+msgstr ""
+
+#: templates/js/translated/stock.js:1672
+msgid "Select Status Code"
+msgstr ""
+
+#: templates/js/translated/stock.js:1673
+msgid "Status code must be selected"
+msgstr ""
+
+#: templates/js/translated/stock.js:1897
+msgid "Invalid date"
+msgstr ""
+
+#: templates/js/translated/stock.js:1944
+msgid "Location no longer exists"
+msgstr ""
+
+#: templates/js/translated/stock.js:1963
+msgid "Purchase order no longer exists"
+msgstr ""
+
+#: templates/js/translated/stock.js:1982
+msgid "Customer no longer exists"
+msgstr ""
+
+#: templates/js/translated/stock.js:2000
+msgid "Stock item no longer exists"
+msgstr ""
+
+#: templates/js/translated/stock.js:2023
+msgid "Added"
+msgstr ""
+
+#: templates/js/translated/stock.js:2031
+msgid "Removed"
+msgstr ""
+
+#: templates/js/translated/stock.js:2072
+msgid "Edit tracking entry"
+msgstr ""
+
+#: templates/js/translated/stock.js:2073
+msgid "Delete tracking entry"
+msgstr ""
+
+#: templates/js/translated/stock.js:2124
+msgid "No installed items"
+msgstr ""
+
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
+#: templates/js/translated/stock.js:2175
+msgid "Uninstall Stock Item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:56
+msgid "Trackable Part"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:60
+msgid "Assembled Part"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:64
+msgid "Validated"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:72
+msgid "Allow Variant Stock"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
+msgid "Include sublocations"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:111
+msgid "Include locations"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
+msgid "Include subcategories"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
+msgid "Is Serialized"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
+msgid "Serial number GTE"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
+msgid "Serial number greater than or equal to"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
+msgid "Serial number LTE"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
+msgid "Serial number less than or equal to"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
+msgid "Serial number"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
+msgid "Batch code"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
+msgid "Active parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:164
+msgid "Show stock for active parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:169
+msgid "Part is an assembly"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:173
+msgid "Is allocated"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:174
+msgid "Item has been allocated"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:179
+msgid "Include stock in sublocations"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:184
+msgid "Show stock items which are depleted"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:189
+msgid "Show items which are in stock"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:193
+msgid "In Production"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:194
+msgid "Show items which are in production"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:198
+msgid "Include Variants"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:199
+msgid "Include stock items for variant parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:203
+msgid "Installed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:204
+msgid "Show stock items which are installed in another item"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:209
+msgid "Show items which have been assigned to a customer"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
+msgid "Stock status"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:238
+msgid "Has purchase price"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:239
+msgid "Show stock items which have a purchase price set"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:248
+msgid "Show stock items which have expired"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:254
+msgid "Show stock which is close to expiring"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:285
+msgid "Build status"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
+msgid "Order status"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
+msgid "Outstanding"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:359
+msgid "Include parts in subcategories"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:363
+msgid "Has IPN"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:364
+msgid "Part has internal part number"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:369
+msgid "Show active parts"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:377
+msgid "Stock available"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:405
+msgid "Purchasable"
+msgstr ""
+
+#: templates/js/translated/tables.js:368
+msgid "Loading data"
+msgstr ""
+
+#: templates/js/translated/tables.js:371
+msgid "rows per page"
+msgstr ""
+
+#: templates/js/translated/tables.js:374
+msgid "Showing"
+msgstr ""
+
+#: templates/js/translated/tables.js:374
+msgid "to"
+msgstr ""
+
+#: templates/js/translated/tables.js:374
+msgid "of"
+msgstr ""
+
+#: templates/js/translated/tables.js:374
+msgid "rows"
+msgstr ""
+
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
+msgid "No matching results"
+msgstr ""
+
+#: templates/js/translated/tables.js:383
+msgid "Hide/Show pagination"
+msgstr ""
+
+#: templates/js/translated/tables.js:386
+msgid "Refresh"
+msgstr ""
+
+#: templates/js/translated/tables.js:389
+msgid "Toggle"
+msgstr ""
+
+#: templates/js/translated/tables.js:392
+msgid "Columns"
+msgstr ""
+
+#: templates/js/translated/tables.js:395
+msgid "All"
+msgstr ""
+
+#: templates/navbar.html:40
+msgid "Buy"
+msgstr ""
+
+#: templates/navbar.html:52
+msgid "Sell"
+msgstr ""
+
+#: templates/navbar.html:86 users/models.py:39
+msgid "Admin"
+msgstr ""
+
+#: templates/navbar.html:88
+msgid "Logout"
+msgstr ""
+
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
+msgid "About InvenTree"
+msgstr ""
+
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
+#: templates/qr_code.html:11
+msgid "QR data not provided"
+msgstr ""
+
+#: templates/registration/logged_out.html:6
+msgid "You were logged out successfully."
+msgstr ""
+
+#: templates/registration/logged_out.html:8
+msgid "Log in again"
+msgstr ""
+
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
+#: templates/stats.html:13
+msgid "Instance Name"
+msgstr ""
+
+#: templates/stats.html:18
+msgid "Database"
+msgstr ""
+
+#: templates/stats.html:26
+msgid "Server is running in debug mode"
+msgstr ""
+
+#: templates/stats.html:33
+msgid "Docker Mode"
+msgstr ""
+
+#: templates/stats.html:34
+msgid "Server is deployed using docker"
+msgstr ""
+
+#: templates/stats.html:40
+msgid "Server status"
+msgstr ""
+
+#: templates/stats.html:43
+msgid "Healthy"
+msgstr ""
+
+#: templates/stats.html:45
+msgid "Issues detected"
+msgstr ""
+
+#: templates/stats.html:52
+msgid "Background Worker"
+msgstr ""
+
+#: templates/stats.html:55
+msgid "Background worker not running"
+msgstr ""
+
+#: templates/stats.html:63
+msgid "Email Settings"
+msgstr ""
+
+#: templates/stats.html:66
+msgid "Email settings not configured"
+msgstr ""
+
+#: templates/stock_table.html:14
+msgid "Export Stock Information"
+msgstr ""
+
+#: templates/stock_table.html:20
+msgid "Barcode Actions"
+msgstr ""
+
+#: templates/stock_table.html:36
+msgid "Print test reports"
+msgstr ""
+
+#: templates/stock_table.html:43
+msgid "Stock Options"
+msgstr ""
+
+#: templates/stock_table.html:48
+msgid "Add to selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:49
+msgid "Remove from selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:50
+msgid "Stocktake selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:51
+msgid "Move selected stock items"
+msgstr ""
+
+#: templates/stock_table.html:51
+msgid "Move stock"
+msgstr ""
+
+#: templates/stock_table.html:52
+msgid "Order selected items"
+msgstr ""
+
+#: templates/stock_table.html:53
+msgid "Change status"
+msgstr ""
+
+#: templates/stock_table.html:53
+msgid "Change stock status"
+msgstr ""
+
+#: templates/stock_table.html:56
+msgid "Delete selected items"
+msgstr ""
+
+#: templates/yesnolabel.html:4
+msgid "Yes"
+msgstr ""
+
+#: templates/yesnolabel.html:6
+msgid "No"
+msgstr ""
+
+#: users/admin.py:64
+msgid "Users"
+msgstr ""
+
+#: users/admin.py:65
+msgid "Select which users are assigned to this group"
+msgstr ""
+
+#: users/admin.py:187
+msgid "The following users are members of multiple groups:"
+msgstr ""
+
+#: users/admin.py:210
+msgid "Personal info"
+msgstr ""
+
+#: users/admin.py:211
+msgid "Permissions"
+msgstr ""
+
+#: users/admin.py:214
+msgid "Important dates"
+msgstr ""
+
+#: users/models.py:187
+msgid "Permission set"
+msgstr ""
+
+#: users/models.py:195
+msgid "Group"
+msgstr ""
+
+#: users/models.py:198
+msgid "View"
+msgstr ""
+
+#: users/models.py:198
+msgid "Permission to view items"
+msgstr ""
+
+#: users/models.py:200
+msgid "Permission to add items"
+msgstr ""
+
+#: users/models.py:202
+msgid "Change"
+msgstr ""
+
+#: users/models.py:202
+msgid "Permissions to edit items"
+msgstr ""
+
+#: users/models.py:204
+msgid "Permission to delete items"
+msgstr ""
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.mo b/InvenTree/locale/fr/LC_MESSAGES/django.mo
index 71c5e16916..a3751f6c99 100644
Binary files a/InvenTree/locale/fr/LC_MESSAGES/django.mo and b/InvenTree/locale/fr/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/fr/LC_MESSAGES/django.po b/InvenTree/locale/fr/LC_MESSAGES/django.po
index 6a73b7e40a..6287e77763 100644
--- a/InvenTree/locale/fr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/fr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:28\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: French\n"
"Language: fr_FR\n"
@@ -33,262 +33,270 @@ msgstr "Aucune action correspondante trouvée"
msgid "Enter date"
msgstr "Entrer la date"
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr "Confirmer"
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr "Confirmer la suppression"
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr "Confirmer la suppression de cet élément"
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr "Entrer le mot de passe"
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr "Entrer le nouveau mot de passe"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr "Confirmez le mot de passe"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr "Confirmer le nouveau mot de passe"
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr "Sélectionnez une catégorie"
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
-msgstr ""
+msgid "Email (again)"
+msgstr "Email (encore)"
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr "Confirmation de l'adresse email"
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
-msgstr ""
+msgstr "Vous devez taper le même e-mail à chaque fois."
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Dupliquer le numéro de série: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr "Quantité fournie invalide"
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr "Chaîne de numéro de série vide"
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Groupe invalide : {g}"
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Numéro de série dupliqué: {g}"
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr "Aucun numéro de série trouvé"
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Le nombre de numéros de série uniques ({s}) doit correspondre à la quantité ({q})"
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr "Pièce jointe"
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr "Sélectionnez un fichier à joindre"
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr "Commentaire"
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr "Commentaire du fichier"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr "Utilisateur"
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr "date de chargement"
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
-msgstr ""
+msgstr "Le nom de fichier ne doit pas être vide"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
-msgstr ""
+msgstr "Répertoire de pièce jointe invalide"
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
-msgstr ""
+msgstr "Le nom de fichier contient le caractère illégal '{c}'"
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
-msgstr ""
+msgstr "Extension manquante du nom de fichier"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
-msgstr ""
+msgstr "Une pièce jointe avec ce nom de fichier existe déjà"
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
-msgstr ""
+msgstr "Erreur lors du renommage du fichier"
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
-msgstr ""
+msgstr "Choix invalide"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr "Nom"
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr "Description"
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr "Description (facultative)"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr "parent"
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
-msgstr ""
+msgstr "Doit être un nombre valide"
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
-msgstr ""
+msgstr "Nom du fichier"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr "Allemand"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
-msgstr ""
+msgstr "Greek"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr "Anglais"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
-msgstr ""
+msgstr "Spanish"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr "Espagnol (Mexique)"
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr "Français"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
-msgstr ""
+msgstr "Hebrew"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
-msgstr ""
+msgstr "Italian"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
-msgstr ""
+msgstr "Japanese"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
-msgstr ""
+msgstr "Korean"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
-msgstr ""
+msgstr "Dutch"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
-msgstr ""
+msgstr "Norwegian"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr "Polonais"
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr "Portugais"
+
+#: InvenTree/settings.py:678
msgid "Russian"
-msgstr ""
+msgstr "Russian"
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
-msgstr ""
+msgstr "Swedish"
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
-msgstr ""
+msgstr "Thai"
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr "Turc"
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
-msgstr ""
+msgstr "Vietnamese"
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
-msgstr ""
+msgstr "Chinese"
#: InvenTree/status.py:94
msgid "Background worker check failed"
@@ -302,202 +310,202 @@ msgstr "Backend d'email non configuré"
msgid "InvenTree system health checks failed"
msgstr "Échec des contrôles de santé du système"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr "En attente"
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
-msgstr ""
+msgstr "Placé"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr "Terminé"
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr "Annulé"
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr "Perdu"
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr "Retourné"
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr "Expédié"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr "Attention requise"
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr "Endommagé"
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr "Détruit"
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr "Rejeté"
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr "Ancienne entrée de suivi de stock"
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr "Article en stock créé"
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr "Article de stock modifié"
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr "Numéro de série attribué"
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr "Stock comptabilisé"
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr "Stock ajouté manuellement"
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr "Stock supprimé manuellement"
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr "Emplacement modifié"
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr "Installé dans l'assemblage"
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr "Retiré de l'assemblage"
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr "Composant installé"
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr "Composant retiré"
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr "Séparer de l'élément parent"
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr "Fractionner l'élément enfant"
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr "Envoyé au client"
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr "Retourné par le client"
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr "La sortie de l'ordre de construction a été créée"
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr "Sortie de l'ordre de construction terminée"
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr "Reçu contre bon de commande"
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr "Fabrication"
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr "Code de devise invalide"
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr "Caractère invalide dans le nom de la pièce"
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "L'IPN doit correspondre au modèle de regex {pat}"
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "La référence doit correspondre au modèle {pattern}"
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Caractère invalide dans le nom ({x})"
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr "Supprimer cet élément"
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
-msgstr ""
+msgstr "Cochez la case pour confirmer la suppression de l'élément"
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr "Modifier les informations utilisateur"
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
-msgstr ""
+msgstr "Définir le mot de passe"
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
-msgstr ""
+msgstr "Les mots de passe doivent correspondre"
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr "Informations système"
#: barcodes/api.py:53 barcodes/api.py:150
msgid "Must provide barcode_data parameter"
-msgstr ""
+msgstr "Le paramètre barcode_data doit être fourni"
#: barcodes/api.py:126
msgid "No match found for barcode data"
@@ -509,11 +517,11 @@ msgstr "Correspondance trouvée pour les données du code-barres"
#: barcodes/api.py:153
msgid "Must provide stockitem parameter"
-msgstr ""
+msgstr "Vous devez fournir le paramètre stockitem"
#: barcodes/api.py:160
msgid "No matching stock item found"
-msgstr ""
+msgstr "Aucun article d'inventaire correspondant trouvé"
#: barcodes/api.py:190
msgid "Barcode already matches StockItem object"
@@ -535,599 +543,574 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr ""
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr ""
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr "Quantité"
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr "Numéros de série"
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
-msgstr ""
+msgstr "Confirmer la création de la sortie de l'assemblage"
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr ""
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr ""
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr "Emplacement des pièces terminées"
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr ""
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr ""
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
-msgstr ""
+msgstr "Confirmer l'annulation"
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
-msgstr ""
+msgstr "Ordre de Fabrication"
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
-msgstr ""
+msgstr "Ordres de Fabrication"
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
-msgstr ""
+msgstr "Référence de l' Ordre de Fabrication"
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr "Référence"
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr "Pièce"
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr "Sélectionnez la pièce à construire"
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
-msgstr ""
+msgstr "Emplacement d'origine"
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
-msgstr ""
+msgstr "Emplacement cible"
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
-msgstr ""
+msgstr "Sélectionnez l'emplacement où les éléments complétés seront stockés"
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr ""
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr "Date de création"
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr ""
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr ""
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr ""
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr ""
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr "Lien Externe"
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
-msgstr ""
+msgstr "Lien vers une url externe"
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr "Notes"
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
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:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
-msgstr ""
+msgstr "Assemblage"
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
-msgstr ""
+msgstr "Article en stock"
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
-msgstr ""
+msgstr "Installer dans"
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
+#: build/serializers.py:137 build/serializers.py:357
+msgid "Build Output"
+msgstr "Sortie d'assemblage"
+
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr "Emplacement"
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr "État"
+
+#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:142
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:157
+#: build/serializers.py:334
msgid "Item must be in stock"
-msgstr ""
+msgstr "L'article doit être en stock"
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
-msgstr ""
+msgstr "La quantité doit être supérieure à zéro"
-#: build/serializers.py:180
-msgid "Build Output"
-msgstr ""
-
-#: build/serializers.py:213
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
-msgstr ""
+msgstr "Quantité disponible ({q}) dépassée"
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
+#: build/tasks.py:92
+msgid "Stock required for build order"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr "Actions d'impression"
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr "Modifier l'assemblage"
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr "Annuler l'assemblage"
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr "Supprimer l'assemblage"
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr "Compléter l'assemblage"
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
-msgstr ""
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
+msgstr "Date Cible"
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
-msgstr ""
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
+msgstr "En retard"
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr "Terminé"
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
-msgstr ""
+msgstr "Commandes"
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr ""
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
-msgstr ""
+msgstr "Destination"
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
-msgstr ""
+msgstr "Créé le"
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
-msgstr ""
+msgstr "Pas de date cible définie"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr "Commander les pièces requises"
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr "Commander des pièces"
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr "Pieces jointes"
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
-msgstr ""
+msgstr "Modifier les notes"
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
-msgstr ""
+msgstr "Ajouter une pièce jointe"
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
-msgstr ""
+msgstr "Modifier la pièce jointe"
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
-msgstr "Détails"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr "Articles en attente"
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1447,9 +1396,9 @@ msgstr ""
#: build/views.py:106
msgid "Maximum output quantity is "
-msgstr ""
+msgstr "La quantité maximale de sortie est "
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,45 +1430,25 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
-msgstr ""
+msgstr "Format de fichier non pris en charge : {ext.upper()}"
#: common/files.py:69
msgid "Error reading file (invalid encoding)"
@@ -1539,7 +1468,7 @@ msgstr ""
#: common/forms.py:34 templates/js/translated/attachment.js:54
msgid "File"
-msgstr ""
+msgstr "Fichier"
#: common/forms.py:35
msgid "Select file to upload"
@@ -1554,725 +1483,727 @@ msgstr "{name.title()} Fichier"
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr "Pas de groupe"
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr "Redémarrage nécessaire"
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
-msgstr ""
+msgstr "Nom de la société"
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
-msgstr ""
+msgstr "Devise par défaut"
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
-msgstr ""
+msgstr "Devises par défaut"
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr "Télécharger depuis l'URL"
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr "Regex IPN"
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr "Expression régulière pour la correspondance avec l'IPN de la Pièce"
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr "Autoriser les IPN dupliqués"
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr "Permettre à plusieurs pièces de partager le même IPN"
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr "Autoriser l'édition de l'IPN"
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr "Permettre de modifier la valeur de l'IPN lors de l'édition d'une pièce"
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
-msgstr ""
+msgstr "Composant"
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
-msgstr ""
+msgstr "Achetable"
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
-msgstr ""
+msgstr "Les pièces sont achetables par défaut"
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
-msgstr ""
+msgstr "Afficher l'assistant d'importation pour certaine vues de produits"
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
-msgstr ""
+msgstr "Taille de la page"
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
-msgstr ""
+msgstr "Rapports de test"
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr "jours"
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
-msgstr ""
+msgstr "Préfixe des commandes d'achats"
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
+msgstr "Activer les mots de passe oubliés"
+
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
-msgstr ""
-
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
+msgstr "Activer les inscriptions"
+
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
-msgstr ""
-
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
-msgstr ""
+msgstr "Activer le SSO"
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
-msgstr ""
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
+msgstr "Activer le SSO sur les pages de connexion"
-#: common/models.py:854
-msgid "E-Mail required"
-msgstr ""
+#: common/models.py:931
+msgid "Email required"
+msgstr "Email requis"
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
-msgstr ""
+msgstr "Saisie automatique des utilisateurs SSO"
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
-msgstr ""
+msgstr "Courriel en double"
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr "Afficher les dernières pièces"
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr "Afficher les dernières modifications du stock"
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2281,11 +2212,11 @@ msgstr ""
#: company/forms.py:24 part/forms.py:46
msgid "URL"
-msgstr ""
+msgstr "URL"
#: company/forms.py:25 part/forms.py:47
msgid "Image URL"
-msgstr ""
+msgstr "URL de l'image"
#: company/models.py:105
msgid "Company description"
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,72 +2252,73 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
-msgstr ""
+msgstr "E-mail"
#: company/models.py:125
msgid "Contact email address"
-msgstr ""
+msgstr "Adresse e-mail de contact"
#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
-msgstr ""
+msgstr "Contact"
#: company/models.py:129
msgid "Point of contact"
-msgstr ""
+msgstr "Point de contact"
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
-msgstr ""
+msgstr "Lien"
#: company/models.py:131
msgid "Link to external company information"
-msgstr ""
+msgstr "Lien externe vers les informations de l'entreprise"
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
-msgstr ""
+msgstr "Image"
#: company/models.py:144
msgid "is customer"
-msgstr ""
+msgstr "est client"
#: company/models.py:144
msgid "Do you sell items to this company?"
-msgstr ""
+msgstr "Vendez-vous des objets à cette entreprise?"
#: company/models.py:146
msgid "is supplier"
-msgstr ""
+msgstr "est fournisseur"
#: company/models.py:146
msgid "Do you purchase items from this company?"
-msgstr ""
+msgstr "Est-ce que vous achetez des articles à cette entreprise?"
#: company/models.py:148
msgid "is manufacturer"
-msgstr ""
+msgstr "est fabricant"
#: company/models.py:148
msgid "Does this company manufacture parts?"
-msgstr ""
+msgstr "Cette entreprise fabrique-t-elle des pièces?"
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
-msgstr ""
+msgstr "Devise"
#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
-msgstr ""
+msgstr "Fabricant"
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
-msgstr ""
+msgstr "Sélectionner un fabricant"
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,18 +2373,19 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
-msgstr ""
+msgstr "Valeur"
#: company/models.py:423
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
-msgstr ""
+msgstr "Fournisseur"
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
-msgstr ""
+msgstr "coût de base"
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,47 +2466,43 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
+msgid "Create Purchase Order"
+msgstr "Créer une commande d'achat"
#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
-msgid "Create Purchase Order"
-msgstr ""
-
-#: company/templates/company/company_base.html:51
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
-msgstr ""
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr "Ajouter une nouvelle image"
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
+msgstr "Télécharger l'image depuis l'URL"
#: company/templates/company/company_base.html:81
msgid "Uses default currency"
@@ -2583,402 +2512,393 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
-msgstr ""
+msgstr "Commandes d'achat"
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
-msgstr ""
+msgstr "Créer une commande d'achat"
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
-msgstr ""
+msgstr "Nouvelle commande achat"
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
-msgstr ""
+msgstr "Ventes"
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
-msgstr ""
+msgstr "Nouvelle commande de vente"
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
-msgstr ""
+msgstr "Stock affecté"
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
#: company/templates/company/index.html:8
msgid "Supplier List"
-msgstr ""
+msgstr "Liste des Fournisseurs"
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr "Fabricants"
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
-msgstr ""
+msgstr "Pièces Internes"
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
-msgstr ""
+msgstr "Fournisseurs"
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
-msgstr ""
+msgstr "Supprimer les pièces du fournisseur"
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
-msgstr ""
+msgstr "Supprimer"
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
-msgstr ""
+msgstr "Paramètres"
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
-msgstr ""
+msgstr "Nouveau paramètre"
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr "Stock"
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr "Commandes"
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
-msgstr ""
+msgstr "Tarif"
+
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr "Éléments en stock"
#: company/views.py:50
msgid "New Supplier"
-msgstr ""
-
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
+msgstr "Nouveau Fournisseur"
#: company/views.py:56
msgid "New Manufacturer"
-msgstr ""
+msgstr "Nouveau Fabricant"
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
-msgstr ""
+msgstr "Clients"
#: company/views.py:62
msgid "New Customer"
-msgstr ""
+msgstr "Nouveaux Clients"
#: company/views.py:69
msgid "Companies"
-msgstr ""
+msgstr "Entreprises"
#: company/views.py:70
msgid "New Company"
-msgstr ""
+msgstr "Nouvelle Entreprise"
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3004,7 +2924,7 @@ msgstr ""
#: label/models.py:134 report/models.py:298
msgid "Enabled"
-msgstr ""
+msgstr "Activé"
#: label/models.py:135
msgid "Label template is enabled"
@@ -3020,7 +2940,7 @@ msgstr ""
#: label/models.py:147
msgid "Height [mm]"
-msgstr ""
+msgstr "Hauteur [mm]"
#: label/models.py:148
msgid "Label height, specified in mm"
@@ -3041,7 +2961,7 @@ msgstr ""
#: label/models.py:259 label/models.py:319 label/models.py:366
#: report/models.py:322 report/models.py:457 report/models.py:495
msgid "Filters"
-msgstr ""
+msgstr "Filtres"
#: label/models.py:318
msgid "Query filters (comma-separated list of key=value pairs"
@@ -3051,246 +2971,242 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
-msgstr ""
+msgstr "Passer la commande"
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
-msgstr ""
+msgstr "Marquer la commande comme complète"
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
-msgstr ""
+msgstr "Annuler la commande"
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
-msgstr ""
+msgstr "Expédier la commande"
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
-msgstr ""
+msgstr "Description de la commande"
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
-msgstr ""
+msgstr "Lien vers une page externe"
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
-msgstr ""
+msgstr "Créé par"
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
-msgstr ""
+msgstr "expédié par"
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
-msgstr ""
+msgstr "Nombre d'élement"
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
-msgstr ""
+msgstr "Commande"
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
-msgstr ""
+msgstr "Commande d’achat"
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
-msgstr ""
+msgstr "Pièce fournisseur"
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
-msgstr ""
+msgstr "Reçu"
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
-msgstr ""
+msgstr "Nombre d'éléments reçus"
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
-msgstr ""
+msgstr "Prix d'achat"
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
-msgstr ""
+msgstr "Prix de vente"
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
-msgstr ""
+msgstr "Ligne"
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
-msgstr ""
+msgstr "Article"
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
#: order/serializers.py:167
msgid "Purchase price currency"
-msgstr ""
+msgstr "Devise du prix d'achat"
#: order/serializers.py:202
msgid "Line Item"
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
-msgstr ""
+msgstr "Le code-barres est déjà utilisé"
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr "Modifier la commande"
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
-msgstr ""
+msgstr "Statut de la commande"
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3436,14 +3350,14 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_fields.html:35
#: part/templates/part/import_wizard/match_fields.html:42
msgid "Remove column"
-msgstr ""
+msgstr "Supprimer la colonne"
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/bom_upload/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
#: part/templates/part/import_wizard/match_fields.html:60
msgid "Duplicate selection"
-msgstr ""
+msgstr "Dupliquer la sélection"
#: order/templates/order/order_wizard/match_fields.html:71
#: order/templates/order/order_wizard/match_parts.html:52
@@ -3453,9 +3367,10 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
-msgstr ""
+msgstr "Supprimer la ligne"
#: order/templates/order/order_wizard/match_parts.html:12
#: part/templates/part/bom_upload/match_parts.html:12
@@ -3469,7 +3384,7 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:21
#: part/templates/part/import_wizard/match_references.html:28
msgid "Row"
-msgstr ""
+msgstr "Ligne"
#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr "Détails"
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
-msgid "Purchase Order Items"
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
+msgid "Purchase Order Items"
+msgstr "Articles de la commande d'achat"
+
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,21 +3593,9 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
-msgstr ""
+msgstr "Annuler la commande"
#: order/views.py:112 order/views.py:138
msgid "Confirm order cancellation"
@@ -3675,11 +3603,11 @@ msgstr ""
#: order/views.py:115 order/views.py:141
msgid "Order cannot be cancelled"
-msgstr ""
+msgstr "La commande ne peut pas être annulée"
#: order/views.py:129
msgid "Cancel sales order"
-msgstr ""
+msgstr "Annuler la vente"
#: order/views.py:155
msgid "Issue Order"
@@ -3695,7 +3623,7 @@ msgstr ""
#: order/views.py:185
msgid "Complete Order"
-msgstr ""
+msgstr "Finaliser la commande"
#: order/views.py:201
msgid "Confirm order completion"
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3723,7 +3647,7 @@ msgstr ""
#: order/views.py:535
msgid "Update prices"
-msgstr ""
+msgstr "Mettre à jour les prix"
#: order/views.py:793
#, python-brace-format
@@ -3764,7 +3688,7 @@ msgstr ""
#: order/views.py:1078
msgid "Price not found"
-msgstr ""
+msgstr "Prix introuvable"
#: order/views.py:1081
#, python-brace-format
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3831,7 +3743,7 @@ msgstr ""
#: part/forms.py:67
msgid "Levels"
-msgstr ""
+msgstr "Niveaux"
#: part/forms.py:67
msgid "Select maximum number of BOM levels to export (0 = all levels)"
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,464 +3805,466 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr "IPN dupliqué non autorisé dans les paramètres de la pièce"
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
-msgstr ""
+msgstr "Catégorie"
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
-msgstr ""
+msgstr "Catégorie de la pièce"
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr "IPN"
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
-msgstr ""
+msgstr "Révision"
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
-msgstr ""
+msgstr "Actif"
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
-msgstr ""
+msgstr "Ventes multiples"
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
-msgstr ""
+msgstr "Nom de test"
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
-msgstr ""
+msgstr "Requis"
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
-msgstr ""
+msgstr "Données"
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
-msgstr ""
+msgid "Delete Items"
+msgstr "Supprimer l'élément"
#: part/templates/part/bom_duplicate.html:13
msgid "This part already has a Bill of Materials"
@@ -4358,30 +4272,29 @@ msgstr ""
#: part/templates/part/bom_upload/match_parts.html:29
msgid "Select Part"
+msgstr "Sélectionner une pièce"
+
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
-msgstr ""
-
-#: part/templates/part/bom_upload/upload_file.html:27
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
+msgstr "Modifier la catégorie"
+
+#: part/templates/part/category.html:44
+msgid "Edit Category"
+msgstr "Modifier la catégorie"
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
+msgstr "Supprimer la catégorie"
+
+#: part/templates/part/category.html:49
+msgid "Delete Category"
+msgstr "Supprimer la catégorie"
+
+#: part/templates/part/category.html:57
msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:44
-msgid "Edit part category"
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr "Nouvelle catégorie"
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
msgstr ""
-#: part/templates/part/category.html:49
-msgid "Delete part category"
-msgstr ""
-
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
-msgstr ""
-
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
-msgstr ""
+msgstr "Exporter"
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
-msgstr ""
+msgstr "Modifier la pièce"
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
-msgstr ""
+msgstr "Calculer"
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4888,7 +4823,7 @@ msgstr ""
#: part/templates/part/part_pricing.html:65 part/templates/part/prices.html:69
msgid "Unit Purchase Price"
-msgstr ""
+msgstr "Prix d’achat unitaire"
#: part/templates/part/part_pricing.html:71 part/templates/part/prices.html:76
msgid "Total Purchase Price"
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr "Tester le modèle"
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4974,13 +4921,13 @@ msgstr ""
#: part/templates/part/prices.html:118
msgid "Show sale price"
-msgstr ""
+msgstr "Afficher le prix de vente"
#: part/templates/part/prices.html:140
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -4988,7 +4935,7 @@ msgstr ""
#: part/templates/part/prices.html:201 part/templates/part/prices.html:231
#: part/templates/part/prices.html:257 part/templates/part/prices.html:285
msgid "Jump to overview"
-msgstr ""
+msgstr "Aller à la vue d'ensemble"
#: part/templates/part/prices.html:181
msgid "Stock Pricing"
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,138 +4988,130 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
#: report/models.py:182
msgid "Template name"
-msgstr ""
+msgstr "Nom du modèle"
#: report/models.py:188
msgid "Report template file"
@@ -5232,7 +5171,7 @@ msgstr ""
#: report/models.py:546
msgid "Snippet"
-msgstr ""
+msgstr "Extrait "
#: report/models.py:547
msgid "Report snippet file"
@@ -5244,7 +5183,7 @@ msgstr ""
#: report/models.py:586
msgid "Asset"
-msgstr ""
+msgstr "Elément"
#: report/models.py:587
msgid "Report asset file"
@@ -5256,33 +5195,37 @@ msgstr ""
#: report/templates/report/inventree_build_order_base.html:147
msgid "Required For"
-msgstr ""
-
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
+msgstr "Requis pour"
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
-msgstr ""
+msgstr "Propriétaire"
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
-msgstr ""
+msgstr "Sélectionner un propriétaire"
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr "Enregistrer"
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr "Disponible"
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
-msgstr "Disponible"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
+msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
-msgstr ""
+msgstr "Annuler"
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr "A un IPN"
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
-msgstr ""
+msgstr "Ventes"
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.mo b/InvenTree/locale/he/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..3427265ca5
Binary files /dev/null and b/InvenTree/locale/he/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/he/LC_MESSAGES/django.po b/InvenTree/locale/he/LC_MESSAGES/django.po
index 049d8cac93..d000923de9 100644
--- a/InvenTree/locale/he/LC_MESSAGES/django.po
+++ b/InvenTree/locale/he/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:28\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Hebrew\n"
"Language: he_IL\n"
@@ -33,260 +33,268 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr ""
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr ""
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr ""
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr ""
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr ""
@@ -302,196 +310,196 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -535,599 +543,574 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr ""
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr ""
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr ""
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr ""
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr ""
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr ""
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr ""
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr ""
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr ""
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr ""
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr ""
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr ""
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr ""
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr ""
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr ""
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr ""
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr ""
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr ""
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr ""
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr ""
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr ""
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr ""
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr ""
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr ""
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr ""
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr ""
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr ""
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
+#: build/tasks.py:92
+msgid "Stock required for build order"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
msgstr ""
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
msgstr ""
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr ""
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr ""
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr ""
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr ""
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr ""
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2348,7 +2280,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
@@ -2376,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2385,8 +2317,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,46 +2466,42 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2965,20 +2885,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.mo b/InvenTree/locale/id/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..e0106c400d
Binary files /dev/null and b/InvenTree/locale/id/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/id/LC_MESSAGES/django.po b/InvenTree/locale/id/LC_MESSAGES/django.po
index 1ccc38461c..23dc8fdee7 100644
--- a/InvenTree/locale/id/LC_MESSAGES/django.po
+++ b/InvenTree/locale/id/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:28\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Indonesian\n"
"Language: id_ID\n"
@@ -19,274 +19,282 @@ msgstr ""
#: InvenTree/api.py:64
msgid "API endpoint not found"
-msgstr ""
+msgstr "API endpoint tidak ditemukan"
#: InvenTree/api.py:110
msgid "No action specified"
-msgstr ""
+msgstr "Tidak ada tindakan yang ditentukan"
#: InvenTree/api.py:124
msgid "No matching action found"
-msgstr ""
+msgstr "Aksi tidak ditemukan"
#: InvenTree/fields.py:100
msgid "Enter date"
-msgstr ""
+msgstr "Masukkan tanggal"
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
-msgstr ""
+msgstr "Konfirmasi"
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
-msgstr ""
+msgstr "Konfirmasi penghapusan"
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
-msgstr ""
+msgstr "Konfirmasi penghapusan item"
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
-msgstr ""
+msgstr "Masukkan sandi"
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
-msgstr ""
+msgstr "Masukkan kata sandi baru"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
-msgstr ""
+msgstr "Konfirmasikan kata sandi"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
-msgstr ""
+msgstr "Konfirmasi sandi baru"
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
-msgstr ""
-
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
+msgstr "Pilih Kategori"
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
-msgstr ""
+msgid "Email (again)"
+msgstr "Email (ulang)"
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr "Konfirmasi alamat email"
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr ""
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr ""
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr ""
@@ -302,196 +310,196 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -535,599 +543,574 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr ""
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr ""
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr ""
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr ""
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr ""
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr ""
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr ""
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr ""
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr ""
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr ""
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr ""
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr ""
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr ""
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr ""
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr ""
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr ""
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr ""
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr ""
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr ""
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr ""
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr ""
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr ""
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr ""
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr ""
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr ""
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr ""
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr ""
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
+#: build/tasks.py:92
+msgid "Stock required for build order"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
msgstr ""
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
msgstr ""
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr ""
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr ""
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr ""
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr ""
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr ""
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2348,7 +2280,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
@@ -2376,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2385,8 +2317,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,46 +2466,42 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2965,20 +2885,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.mo b/InvenTree/locale/it/LC_MESSAGES/django.mo
index 900921d249..2f4d8f5075 100644
Binary files a/InvenTree/locale/it/LC_MESSAGES/django.mo and b/InvenTree/locale/it/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/it/LC_MESSAGES/django.po b/InvenTree/locale/it/LC_MESSAGES/django.po
index d9a8643afa..447efc9d11 100644
--- a/InvenTree/locale/it/LC_MESSAGES/django.po
+++ b/InvenTree/locale/it/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Italian\n"
"Language: it_IT\n"
@@ -33,260 +33,268 @@ msgstr "Nessuna azione corrispondente trovata"
msgid "Enter date"
msgstr "Inserisci la data"
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr "Conferma"
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr "Conferma eliminazione"
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr "Conferma eliminazione elementi"
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr "Inserire la password"
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr "Inserire una nuova password"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr "Conferma la password"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr "Conferma la nuova password"
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr "Selezione una categoria"
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
-msgstr ""
+msgid "Email (again)"
+msgstr "Email (ancora)"
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr "Conferma indirizzo email"
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
-msgstr ""
+msgstr "È necessario digitare la stessa e-mail ogni volta."
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Seriale Duplicato: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr "Quantità inserita non valida"
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr "Numero seriale vuoto"
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Gruppo non valido: {g}"
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Seriale duplicato: {g}"
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr "Nessun numero di serie trovato"
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Il numero dei numeri seriali univoci ({s}) deve essere uguale alla quantità ({q})"
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr "Allegato"
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr "Seleziona file da allegare"
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr "Commento"
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr "Commento del file"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr "Utente"
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr "data caricamento"
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr "Il nome del file non deve essere vuoto"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr "Directory allegati non valida"
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Il nome del file contiene caratteri non validi '{c}'"
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr "Nome file estensione mancante"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr "Esiste già un allegato con questo nome di file"
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr "Errore nella rinominazione del file"
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr "Scelta non valida"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr "Nome"
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr "Descrizione"
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr "Descrizione (opzionale)"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr "genitore"
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr "Deve essere un numero valido"
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr "Nome del file"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr "Tedesco"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr "Greco"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr "Inglese"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr "Spagnolo"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr "Spagnolo (Messicano)"
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr "Francese"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr "Ebraico"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr "Italiano"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr "Giapponese"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr "Coreano"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr "Olandese"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr "Norvegese"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr "Polacco"
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr "Portoghese"
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr "Russo"
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr "Svedese"
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr "Thailandese"
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr "Turco"
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr "Vietnamita"
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr "Cinese"
@@ -302,838 +310,813 @@ msgstr "Server di posta non configurato"
msgid "InvenTree system health checks failed"
msgstr "Controlli di sistema InvenTree falliti"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr "In attesa"
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr "Inviato"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr "Completo"
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr "Annullato"
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr "Perso"
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr "Reso"
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr "Spedito"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr "Attenzione necessaria"
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr "Danneggiato"
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr "Distrutto"
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr "Respinto"
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr "Voce di tracciamento stock preesistente"
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr "Elemento stock creato"
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr "Elemento stock modificato"
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr "Numero di serie assegnato"
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr "Stock contato"
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr "Stock aggiunto manualmente"
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr "Stock rimosso manualmente"
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr "Posizione cambiata"
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr "Installato nell'assemblaggio"
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr "Rimosso dall'assemblaggio"
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr "Componente installato"
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr "Elemento componente rimosso"
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr "Diviso dall'elemento genitore"
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr "Dividi elemento figlio"
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr "Inviato al cliente"
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr "Restituito dal cliente"
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr "Genera l'output dell'ordine creato"
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr "Build order output completato"
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr "Ricevuto contro l'ordine di acquisto"
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr "Produzione"
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr "Non è un codice valuta valido"
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr "Carattere non valido nel nome del file"
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
-msgstr ""
+msgstr "IPN deve corrispondere al modello regex {pat}"
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
-msgstr ""
+msgstr "Il campo deve corrispondere con il modello {pattern}"
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
-msgstr ""
+msgstr "Carattere illegale nel nome ({x})"
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
-msgstr ""
+msgstr "Il sovra-valore non può essere negativo"
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
-msgstr ""
+msgstr "L'eccesso non deve superare il 100%"
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
-msgstr ""
+msgstr "Il superamento deve essere un valore intero o una percentuale"
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
-msgstr ""
+msgstr "Cancella elemento"
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
-msgstr ""
+msgstr "Spunta la casella per confermare l'eliminazione dell'elemento"
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
-msgstr ""
+msgstr "Modifica informazioni utente"
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
-msgstr ""
+msgstr "Imposta Password"
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
-msgstr ""
+msgstr "Le password devono coincidere"
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
-msgstr ""
+msgstr "Informazioni sistema"
#: barcodes/api.py:53 barcodes/api.py:150
msgid "Must provide barcode_data parameter"
-msgstr ""
+msgstr "È necessario fornire il parametro barcode_data"
#: barcodes/api.py:126
msgid "No match found for barcode data"
-msgstr ""
+msgstr "Nessuna corrispondenza trovata per i dati del codice a barre"
#: barcodes/api.py:128
msgid "Match found for barcode data"
-msgstr ""
+msgstr "Corrispondenza trovata per i dati del codice a barre"
#: barcodes/api.py:153
msgid "Must provide stockitem parameter"
-msgstr ""
+msgstr "È necessario fornire il parametro stockitem"
#: barcodes/api.py:160
msgid "No matching stock item found"
-msgstr ""
+msgstr "Nessun elemento corrispondente trovato"
#: barcodes/api.py:190
msgid "Barcode already matches StockItem object"
-msgstr ""
+msgstr "Il codice a barre corrisponde già all'oggetto StockItem"
#: barcodes/api.py:194
msgid "Barcode already matches StockLocation object"
-msgstr ""
+msgstr "Il codice a barre corrisponde già all'oggetto StockItem"
#: barcodes/api.py:198
msgid "Barcode already matches Part object"
-msgstr ""
+msgstr "Il codice a barre corrisponde già all'articolo"
#: barcodes/api.py:204 barcodes/api.py:216
msgid "Barcode hash already matches StockItem object"
-msgstr ""
+msgstr "Il codice a barre corrisponde già all'articolo in giacenza"
#: barcodes/api.py:222
msgid "Barcode associated with StockItem"
-msgstr ""
+msgstr "Codice a barre associato all'articolo in giacenza"
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr ""
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr ""
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr "Quantità"
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
-msgstr ""
+msgstr "Inserisci la quantità per l'output di compilazione"
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
-msgstr ""
+msgstr "Codice Seriale"
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
-msgstr ""
+msgstr "Inserisci i numeri di serie per gli output di compilazione (build option)"
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
-msgstr ""
+msgstr "Conferma la creazione dell'output di compilazione"
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
-msgstr ""
+msgstr "Conferma la creazione dell'output di compilazione"
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr ""
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr ""
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr ""
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr ""
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr ""
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
-msgstr ""
+msgstr "Conferma annullamento"
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr ""
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
-msgstr ""
+msgstr "Riferimento"
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
-msgstr ""
+msgstr "Articolo"
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
-msgstr ""
+msgstr "Numero di riferimento ordine di vendita"
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
-msgstr ""
+msgstr "Posizione Di Origine"
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
-msgstr ""
+msgstr "Seleziona la posizione da cui prelevare la giacenza (lasciare vuoto per prelevare da qualsiasi posizione di magazzino)"
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
-msgstr ""
+msgstr "Posizione Della Destinazione"
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
-msgstr ""
+msgstr "Seleziona il luogo in cui gli articoli completati saranno immagazzinati"
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
-msgstr ""
+msgstr "Articoli completati"
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
-msgstr ""
+msgstr "Data di creazione"
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
-msgstr ""
-
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
-msgid "Completion Date"
-msgstr ""
-
-#: build/models.py:288
-msgid "completed by"
-msgstr ""
-
-#: build/models.py:296 templates/js/translated/build.js:1264
-msgid "Issued by"
-msgstr ""
+msgstr "Data completamento obiettivo"
#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
+msgid "Completion Date"
+msgstr "Data di completamento"
+
+#: build/models.py:306
+msgid "completed by"
+msgstr "Completato da"
+
+#: build/models.py:314 templates/js/translated/build.js:1668
+msgid "Issued by"
+msgstr "Rilasciato da"
+
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
-msgstr ""
+msgstr "Responsabile"
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
-msgstr ""
+msgstr "Collegamento esterno"
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
-msgstr ""
+msgstr "Link a URL esterno"
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
-msgstr ""
+msgstr "Note"
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
-msgstr ""
+msgstr "La quantità assegnata ({q}) non deve essere maggiore della quantità disponibile ({a})"
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
-msgstr ""
+msgstr "L'articolo in giacenza è sovrallocato"
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
-msgstr ""
+msgstr "La quantità di assegnazione deve essere maggiore di zero"
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
-msgstr ""
+msgstr "La quantità deve essere 1 per lo stock serializzato"
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
-msgstr ""
+msgstr "Articolo in giacenza selezionato non trovato nel BOM"
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
-msgstr ""
+msgstr "Articoli in magazzino"
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
-msgstr ""
+msgstr "Origine giacenza articolo"
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
-msgstr ""
+msgstr "Installa in"
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
-msgstr ""
+msgstr "Destinazione articolo in giacenza"
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
-#: build/serializers.py:213
-#, python-brace-format
-msgid "Available quantity ({q}) exceeded"
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr "Posizione"
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr "Posizione per gli output di build completati"
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr "Stato"
+
+#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr "Distinta base (Bom)"
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr "L'articolo deve essere disponibile"
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr "La quantità deve essere maggiore di zero"
+
+#: build/serializers.py:390
+#, python-brace-format
+msgid "Available quantity ({q}) exceeded"
+msgstr "Quantità disponibile ({q}) superata"
+
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
+msgstr "Deve essere indicata l'allocazione dell'articolo"
+
+#: build/tasks.py:92
+msgid "Stock required for build order"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr "Azioni di stampa"
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
-msgstr ""
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
+msgstr "Data scadenza"
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
-msgstr ""
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
+msgstr "In ritardo"
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr "Completato"
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
-msgstr ""
+msgstr "Ordini di Vendita"
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
-msgstr ""
-
-#: build/templates/build/build_base.html:214
-msgid "Incomplete Outputs"
-msgstr ""
+msgstr "Inviato da"
#: build/templates/build/build_base.html:215
+msgid "Incomplete Outputs"
+msgstr "Output Incompleti"
+
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
#: build/templates/build/build_output_create.html:7
msgid "The Bill of Materials contains trackable parts"
-msgstr ""
+msgstr "La distinta base contiene articoli tracciabili"
#: build/templates/build/build_output_create.html:8
msgid "Build outputs must be generated individually."
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
-msgstr ""
+msgstr "Lo stock può essere prelevato da qualsiasi posizione disponibile."
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
-msgstr ""
+msgstr "Destinazione"
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
+msgstr "Posizione di destinazione non specificata"
+
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
-msgstr ""
+msgstr "Lotto"
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
-msgstr ""
+msgstr "Creato"
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
-msgstr ""
+msgstr "Nessuna data di destinazione impostata"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
-msgstr ""
+msgstr "Build Completata"
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
-msgid "Order required parts"
-msgstr ""
-
#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
-msgid "Order Parts"
+msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
+msgid "Order required parts"
+msgstr "Ordina articoli richiesti"
+
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
+msgid "Order Parts"
+msgstr "Ordine Articoli"
+
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
-msgstr ""
+msgstr "Allegati"
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
-msgstr ""
+msgstr "Genera Note"
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
-msgstr ""
+msgstr "Modifica Note"
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
-msgstr ""
+msgstr "Aggiungi allegato"
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
-msgstr ""
+msgstr "Modifica allegato"
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
-msgstr ""
+msgstr "Conferma Operazione Eliminazione"
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
-msgstr ""
+msgstr "Elimina allegato"
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
-msgstr ""
+msgstr "Assegnazione Completa"
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
-msgstr ""
+msgstr "Tutte le giacenze non tracciate sono state assegnate"
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
-msgstr ""
+msgstr "Visualizzazione calendario"
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
-msgstr ""
+msgstr "Visualizzazione elenco"
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,9 +1398,9 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
-msgstr ""
+msgstr "Numeri di serie già esistenti"
#: build/views.py:131
msgid "Serial numbers required for trackable build output"
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,1550 +1430,1521 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
-msgstr ""
+msgstr "Elimina Ordine Build"
#: common/files.py:67
msgid "Unsupported file format: {ext.upper()}"
-msgstr ""
+msgstr "Formato file non supportato: {ext.upper()}"
#: common/files.py:69
msgid "Error reading file (invalid encoding)"
-msgstr ""
+msgstr "Errore nella lettura del file (codifica non valida)"
#: common/files.py:74
msgid "Error reading file (invalid format)"
-msgstr ""
+msgstr "Errore nella lettura del file (formato non valido)"
#: common/files.py:76
msgid "Error reading file (incorrect dimension)"
-msgstr ""
+msgstr "Errore nella lettura del file (dimensione errata)"
#: common/files.py:78
msgid "Error reading file (data could be corrupted)"
-msgstr ""
+msgstr "Errore di lettura del file (i dati potrebbero essere danneggiati)"
#: common/forms.py:34 templates/js/translated/attachment.js:54
msgid "File"
-msgstr ""
+msgstr "File"
#: common/forms.py:35
msgid "Select file to upload"
-msgstr ""
+msgstr "Seleziona file da caricare"
#: common/forms.py:50
msgid "{name.title()} File"
-msgstr ""
+msgstr "{name.title()} File"
#: common/forms.py:51
#, python-brace-format
msgid "Select {name} file to upload"
-msgstr ""
+msgstr "Seleziona il file {name} da caricare"
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
-msgstr ""
+msgstr "Tasto impostazioni (deve essere univoco - maiuscole e minuscole"
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
-msgstr ""
+msgstr "Valore impostazioni"
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
-msgstr ""
+msgstr "Deve essere un valore intero"
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr "Il valore specificato non è un opzione valida"
+
+#: common/models.py:405
msgid "Value must be a boolean value"
-msgstr ""
+msgstr "Il valore deve essere un valore booleano"
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
-msgstr ""
+msgstr "Il valore deve essere un intero"
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
-msgstr ""
+msgstr "La stringa chiave deve essere univoca"
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr "Nessun gruppo"
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr "Riavvio richiesto"
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr "È stata modificata un'impostazione che richiede un riavvio del server"
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
-msgstr ""
+msgstr "Nome Istanza InvenTree"
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
-msgstr ""
+msgstr "Descrittore stringa per l'istanza del server"
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
-msgstr ""
+msgstr "Utilizza nome istanza"
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
-msgstr ""
+msgstr "Usa il nome dell'istanza nella barra del titolo"
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
-msgstr ""
+msgstr "Nome azienda"
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
-msgstr ""
+msgstr "Nome interno dell'azienda"
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
-msgstr ""
+msgstr "URL Base"
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
-msgstr ""
+msgstr "URL di base per l'istanza del server"
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
-msgstr ""
+msgstr "Valuta predefinita"
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
-msgstr ""
+msgstr "Valuta predefinita"
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
-msgstr ""
+msgstr "Scarica dall'URL"
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
-msgstr ""
+msgstr "Consenti il download di immagini e file remoti da URL esterno"
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
-msgstr ""
+msgstr "Supporto Codice A Barre"
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
-msgstr ""
+msgstr "Abilita supporto scanner codici a barre"
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
-msgstr ""
+msgstr "IPN Regex"
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
-msgstr ""
+msgstr "Schema di espressione regolare per l'articolo corrispondente IPN"
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
-msgstr ""
+msgstr "Consenti duplicati IPN"
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
-msgstr ""
+msgstr "Permetti a più articoli di condividere lo stesso IPN"
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
-msgstr ""
+msgstr "Permetti modifiche al part number interno (IPN)"
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
-msgstr ""
+msgstr "Consenti di modificare il valore del part number durante la modifica di un articolo"
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
-msgstr ""
+msgstr "Copia I Dati Della distinta base dell'articolo"
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
-msgstr ""
+msgstr "Copia I Dati Parametro dell'articolo"
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
-msgstr ""
+msgstr "Copia i dati dei parametri di default quando si duplica un articolo"
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
-msgstr ""
+msgstr "Copia i dati di prova di default quando si duplica un articolo"
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
-msgstr ""
+msgstr "Copia Template Parametri Categoria"
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
-msgstr ""
+msgstr "Copia i modelli dei parametri categoria quando si crea un articolo"
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
-msgstr ""
+msgstr "Template"
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
-msgstr ""
+msgstr "Gli articoli sono modelli per impostazione predefinita"
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
-msgstr ""
+msgstr "Assemblaggio"
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
-msgstr ""
+msgstr "Gli articoli possono essere assemblate da altri componenti per impostazione predefinita"
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
-msgstr ""
+msgstr "Componente"
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
-msgstr ""
+msgstr "Gli articoli possono essere assemblati da altri componenti per impostazione predefinita"
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
-msgstr ""
-
-#: common/models.py:625
-msgid "Parts are purchaseable by default"
-msgstr ""
-
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
-msgid "Salable"
-msgstr ""
-
-#: common/models.py:632
-msgid "Parts are salable by default"
-msgstr ""
-
-#: common/models.py:638 part/models.py:818
-#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
-msgid "Trackable"
-msgstr ""
-
-#: common/models.py:639
-msgid "Parts are trackable by default"
-msgstr ""
-
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
-#: templates/js/translated/table_filters.js:42
-msgid "Virtual"
-msgstr ""
-
-#: common/models.py:646
-msgid "Parts are virtual by default"
-msgstr ""
-
-#: common/models.py:652
-msgid "Show Import in Views"
-msgstr ""
-
-#: common/models.py:653
-msgid "Display the import wizard in some part views"
-msgstr ""
-
-#: common/models.py:659
-msgid "Show Price in Forms"
-msgstr ""
-
-#: common/models.py:660
-msgid "Display part price in some forms"
-msgstr ""
-
-#: common/models.py:671
-msgid "Show Price in BOM"
-msgstr ""
-
-#: common/models.py:672
-msgid "Include pricing information in BOM tables"
-msgstr ""
-
-#: common/models.py:678
-msgid "Show related parts"
-msgstr ""
-
-#: common/models.py:679
-msgid "Display related parts for a part"
-msgstr ""
-
-#: common/models.py:685
-msgid "Create initial stock"
-msgstr ""
-
-#: common/models.py:686
-msgid "Create initial stock on part creation"
-msgstr ""
-
-#: common/models.py:692
-msgid "Internal Prices"
-msgstr ""
-
-#: common/models.py:693
-msgid "Enable internal prices for parts"
-msgstr ""
-
-#: common/models.py:699
-msgid "Internal Price as BOM-Price"
-msgstr ""
-
-#: common/models.py:700
-msgid "Use the internal price (if set) in BOM-price calculations"
-msgstr ""
-
-#: common/models.py:706 templates/stats.html:25
-msgid "Debug Mode"
-msgstr ""
-
-#: common/models.py:707
-msgid "Generate reports in debug mode (HTML output)"
-msgstr ""
-
-#: common/models.py:713
-msgid "Page Size"
-msgstr ""
-
-#: common/models.py:714
-msgid "Default page size for PDF reports"
-msgstr ""
-
-#: common/models.py:724
-msgid "Test Reports"
-msgstr ""
+msgstr "Acquistabile"
#: common/models.py:725
-msgid "Enable generation of test reports"
-msgstr ""
+msgid "Parts are purchaseable by default"
+msgstr "Gli articoli sono acquistabili per impostazione predefinita"
-#: common/models.py:731
-msgid "Stock Expiry"
-msgstr ""
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
+msgid "Salable"
+msgstr "Vendibile"
#: common/models.py:732
-msgid "Enable stock expiry functionality"
-msgstr ""
+msgid "Parts are salable by default"
+msgstr "Gli articoli sono acquistabili per impostazione predefinita"
-#: common/models.py:738
-msgid "Sell Expired Stock"
-msgstr ""
+#: common/models.py:738 part/models.py:900
+#: templates/js/translated/table_filters.js:46
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
+msgid "Trackable"
+msgstr "Tracciabile"
#: common/models.py:739
-msgid "Allow sale of expired stock"
-msgstr ""
+msgid "Parts are trackable by default"
+msgstr "Gli articoli sono tracciabili per impostazione predefinita"
-#: common/models.py:745
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
+#: templates/js/translated/table_filters.js:42
+msgid "Virtual"
+msgstr "Virtuale"
+
+#: common/models.py:746
+msgid "Parts are virtual by default"
+msgstr "Gli articoli sono virtuali per impostazione predefinita"
+
+#: common/models.py:752
+msgid "Show Import in Views"
+msgstr "Mostra l'importazione nelle viste"
+
+#: common/models.py:753
+msgid "Display the import wizard in some part views"
+msgstr "Mostra la procedura guidata di importazione in alcune viste articoli"
+
+#: common/models.py:759
+msgid "Show Price in Forms"
+msgstr "Mostra il prezzo nei moduli"
+
+#: common/models.py:760
+msgid "Display part price in some forms"
+msgstr "Mostra il prezzo dell'articolo in alcuni moduli"
+
+#: common/models.py:771
+msgid "Show Price in BOM"
+msgstr "Mostra il prezzo nella BOM"
+
+#: common/models.py:772
+msgid "Include pricing information in BOM tables"
+msgstr "Includi le informazioni sui prezzi nelle tabelle BOM"
+
+#: common/models.py:778
+msgid "Show related parts"
+msgstr "Mostra articoli correlati"
+
+#: common/models.py:779
+msgid "Display related parts for a part"
+msgstr "Visualizza parti correlate per ogni articolo"
+
+#: common/models.py:785
+msgid "Create initial stock"
+msgstr "Crea giacenza iniziale"
+
+#: common/models.py:786
+msgid "Create initial stock on part creation"
+msgstr "Crea giacenza iniziale sulla creazione articolo"
+
+#: common/models.py:792
+msgid "Internal Prices"
+msgstr "Prezzi interni"
+
+#: common/models.py:793
+msgid "Enable internal prices for parts"
+msgstr "Abilita prezzi interni per gli articoli"
+
+#: common/models.py:799
+msgid "Internal Price as BOM-Price"
+msgstr "Prezzo interno come BOM-Price"
+
+#: common/models.py:800
+msgid "Use the internal price (if set) in BOM-price calculations"
+msgstr "Utilizzare il prezzo interno (se impostato) nel calcolo del prezzo BOM"
+
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr "Formato di visualizzazione del nome articolo"
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr "Formato per visualizzare il nome dell'articolo"
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr "Abilita Report di Stampa"
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr "Abilita generazione di report di stampa"
+
+#: common/models.py:821 templates/stats.html:25
+msgid "Debug Mode"
+msgstr "Modalità Debug"
+
+#: common/models.py:822
+msgid "Generate reports in debug mode (HTML output)"
+msgstr "Genera report in modalità debug (output HTML)"
+
+#: common/models.py:828
+msgid "Page Size"
+msgstr "Dimensioni pagina"
+
+#: common/models.py:829
+msgid "Default page size for PDF reports"
+msgstr "Dimensione predefinita della pagina per i report PDF"
+
+#: common/models.py:839
+msgid "Test Reports"
+msgstr "Stampa di prova"
+
+#: common/models.py:840
+msgid "Enable generation of test reports"
+msgstr "Abilita generazione di stampe di prova"
+
+#: common/models.py:846
+msgid "Stock Expiry"
+msgstr "Scadenza giacenza"
+
+#: common/models.py:847
+msgid "Enable stock expiry functionality"
+msgstr "Abilita funzionalità di scadenza della giacenza"
+
+#: common/models.py:853
+msgid "Sell Expired Stock"
+msgstr "Vendi giacenza scaduta"
+
+#: common/models.py:854
+msgid "Allow sale of expired stock"
+msgstr "Consenti la vendita di stock scaduti"
+
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
-msgstr ""
+msgstr "Numero di giorni in cui gli articoli in magazzino sono considerati obsoleti prima della scadenza"
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
-msgstr ""
+msgstr "giorni"
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
-msgstr ""
+msgstr "Controllo della proprietà della giacenza"
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
-msgstr ""
+msgstr "Abilita il controllo della proprietà sulle posizioni e gli oggetti in giacenza"
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
-msgstr ""
+msgstr "Raggruppa per articolo"
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
-msgstr ""
+msgstr "Raggruppa le voci di giacenza per riferimento articolo nelle viste della tabella"
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
-msgstr ""
+msgstr "Referenza ordine d'acquisto"
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
-msgstr ""
+msgstr "Abilita password dimenticata"
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
-msgstr ""
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
+msgstr "Abilita la funzione password dimenticata nelle pagine di accesso"
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
-msgstr ""
+msgstr "Abilita registrazione"
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
-msgstr ""
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
+msgstr "Abilita auto-registrazione per gli utenti nelle pagine di accesso"
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
-msgstr ""
+msgstr "SSO abilitato"
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
-msgstr ""
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
+msgstr "Abilita SSO nelle pagine di accesso"
-#: common/models.py:854
-msgid "E-Mail required"
-msgstr ""
+#: common/models.py:931
+msgid "Email required"
+msgstr "Email richiesta"
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
-msgstr ""
+msgstr "Richiedi all'utente di fornire una email al momento dell'iscrizione"
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
-msgstr ""
+msgstr "Riempimento automatico degli utenti SSO"
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
-msgstr ""
+msgstr "Compila automaticamente i dettagli dell'utente dai dati dell'account SSO"
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr "Mostra le categorie sottoscritte"
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr "Mostra le categorie dei componenti sottoscritti nella homepage"
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr "Mostra ultimi articoli"
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
-msgstr ""
+msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
-msgstr ""
+msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
-msgstr ""
+msgstr "Visualizzazione dell'etichetta in linea"
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
-msgstr ""
+msgstr "Visualizza le etichette PDF nel browser, invece di scaricare come file"
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
-msgstr ""
+msgstr "Risultati Dell'Anteprima Di Ricerca"
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
-msgstr ""
+msgstr "Prezzo"
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
-msgstr ""
+msgstr "Carica file"
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
-msgstr ""
+msgstr "Abbina Campi"
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
-msgstr ""
+msgstr "Elementi corrispondenti"
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
-msgstr ""
+msgstr "Corrispondenza campi non riuscita"
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
-msgstr ""
+msgstr "Articoli importati"
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
msgid "Previous Step"
-msgstr ""
+msgstr "Passaggio Precedente"
#: company/forms.py:24 part/forms.py:46
msgid "URL"
-msgstr ""
+msgstr "URL"
#: company/forms.py:25 part/forms.py:47
msgid "Image URL"
-msgstr ""
+msgstr "URL Immagine"
#: company/models.py:105
msgid "Company description"
-msgstr ""
+msgstr "Descrizione azienda"
#: company/models.py:106
msgid "Description of the company"
-msgstr ""
+msgstr "Descrizione dell'azienda"
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
-msgstr ""
+msgstr "Sito Web"
#: company/models.py:113
msgid "Company website URL"
-msgstr ""
+msgstr "Sito web aziendale"
#: company/models.py:117 company/templates/company/company_base.html:88
msgid "Address"
-msgstr ""
+msgstr "Indirizzo"
#: company/models.py:118
msgid "Company address"
-msgstr ""
+msgstr "Indirizzo dell'azienda"
#: company/models.py:121
msgid "Phone number"
-msgstr ""
+msgstr "Telefono"
#: company/models.py:122
msgid "Contact phone number"
-msgstr ""
+msgstr "Numero di telefono di contatto"
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
-msgstr ""
+msgstr "Email"
#: company/models.py:125
msgid "Contact email address"
-msgstr ""
+msgstr "Indirizzo email"
#: company/models.py:128 company/templates/company/company_base.html:109
msgid "Contact"
-msgstr ""
+msgstr "Contatto"
#: company/models.py:129
msgid "Point of contact"
-msgstr ""
+msgstr "Punto di contatto"
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
-msgstr ""
+msgstr "Link"
#: company/models.py:131
msgid "Link to external company information"
-msgstr ""
+msgstr "Collegamento alle informazioni aziendali esterne"
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
-msgstr ""
+msgstr "Immagine"
#: company/models.py:144
msgid "is customer"
-msgstr ""
+msgstr "è un cliente"
#: company/models.py:144
msgid "Do you sell items to this company?"
-msgstr ""
+msgstr "Vendi oggetti a questa azienda?"
#: company/models.py:146
msgid "is supplier"
-msgstr ""
+msgstr "è un fornitore"
#: company/models.py:146
msgid "Do you purchase items from this company?"
-msgstr ""
+msgstr "Acquistate articoli da questa azienda?"
#: company/models.py:148
msgid "is manufacturer"
-msgstr ""
+msgstr "è un produttore"
#: company/models.py:148
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
-msgstr ""
+msgstr "Valuta"
#: company/models.py:155
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
-msgstr ""
+msgstr "Articolo di base"
#: company/models.py:324 company/models.py:539 order/views.py:912
msgid "Select part"
-msgstr ""
+msgstr "Seleziona articolo"
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
-msgstr ""
+msgstr "Produttore"
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
-msgstr ""
+msgstr "Seleziona Produttore"
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
-msgstr ""
+msgstr "Codice articolo produttore (MPN)"
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
-msgstr ""
+msgstr "Codice articolo produttore"
#: company/models.py:349
msgid "URL for external manufacturer part link"
-msgstr ""
+msgstr "URL dell'articolo del fornitore"
#: company/models.py:355
msgid "Manufacturer part description"
-msgstr ""
+msgstr "Descrizione articolo costruttore"
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
-msgstr ""
+msgstr "Codice articolo produttore"
#: company/models.py:416
msgid "Parameter name"
-msgstr ""
+msgstr "Nome parametro"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
-msgstr ""
+msgstr "Valore"
#: company/models.py:423
msgid "Parameter value"
-msgstr ""
+msgstr "Valore del parametro"
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
-msgstr ""
+msgstr "Unità"
#: company/models.py:430
msgid "Parameter units"
-msgstr ""
+msgstr "Unità parametri"
#: company/models.py:502
msgid "Linked manufacturer part must reference the same base part"
-msgstr ""
+msgstr "L'articolo del costruttore collegato deve riferirsi alla stesso articolo"
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
-msgstr ""
+msgstr "Fornitore"
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
-msgstr ""
+msgstr "Seleziona fornitore"
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
-msgstr ""
+msgstr "SKU"
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
#: company/models.py:559
msgid "Select manufacturer part"
-msgstr ""
+msgstr "Selezionare un produttore"
#: company/models.py:565
msgid "URL for external supplier part link"
-msgstr ""
+msgstr "URL dell'articolo del fornitore"
#: company/models.py:571
msgid "Supplier part description"
-msgstr ""
+msgstr "Descrizione articolo fornitore"
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
-msgstr ""
+msgstr "Nota"
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
-msgstr ""
+msgstr "costo base"
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
-msgstr ""
+msgstr "Onere minimo (ad esempio tassa di stoccaggio)"
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
-msgstr ""
+msgstr "Confezionamento"
#: company/models.py:582
msgid "Part packaging"
-msgstr ""
+msgstr "Imballaggio del pezzo"
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
-msgstr ""
+msgstr "multiplo"
#: company/models.py:584
msgid "Order multiple"
-msgstr ""
+msgstr "Ordine multiplo"
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
-msgstr ""
+msgstr "Valuta predefinita utilizzata per questo fornitore"
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
-msgstr ""
+msgstr "Codice valuta"
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
-msgstr ""
+msgstr "Azienda"
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
+msgid "Create Purchase Order"
+msgstr "Crea ordine d'acquisto"
#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
+msgid "Edit company information"
+msgstr "Modifica le informazioni dell'azienda"
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
-msgid "Create Purchase Order"
-msgstr ""
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
+msgid "Delete Company"
+msgstr "Elimina Azienda"
+
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr "Carica nuova immagine"
#: company/templates/company/company_base.html:51
-msgid "Edit company information"
-msgstr ""
-
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
-msgid "Delete Company"
-msgstr ""
-
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
-msgstr ""
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
+msgstr "Scarica immagine dall'URL"
#: company/templates/company/company_base.html:81
msgid "Uses default currency"
-msgstr ""
+msgstr "Valuta predefinita"
#: company/templates/company/company_base.html:95
msgid "Phone"
-msgstr ""
+msgstr "Telefono"
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
-msgstr ""
+msgstr "Cliente"
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
-msgstr ""
+msgstr "Carica immagine"
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
-msgstr ""
+msgstr "Articoli fornitore"
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
-msgstr ""
+msgstr "Crea nuovo fornitore"
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
-msgid "New Supplier Part"
-msgstr ""
-
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
+#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
-msgid "Options"
-msgstr ""
+#: part/templates/part/detail.html:440
+msgid "New Supplier Part"
+msgstr "Nuovo fornitore articolo"
#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
+msgid "Options"
+msgstr "Opzioni"
+
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
-msgstr ""
+msgstr "Articoli ordinati"
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
-msgstr ""
+msgstr "Cancella articoli"
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
-msgstr ""
+msgstr "Cancella articoli"
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
-msgstr ""
+msgstr "Giacenza Fornitore"
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
-msgstr ""
+msgstr "Ordine di acquisto"
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
-msgstr ""
+msgstr "Elimina articoli fornitore?"
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
-msgstr ""
+msgstr "Tutte gli articoli del fornitore selezionati saranno eliminati"
#: company/templates/company/index.html:8
msgid "Supplier List"
-msgstr ""
+msgstr "Elenco dei fornitori"
+
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr "Produttori"
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
+msgid "Order part"
+msgstr "Articoli ordinati"
#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
-msgid "Order part"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
-msgstr ""
+msgstr "Articolo interno"
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
-msgstr ""
+msgstr "Fornitori"
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
-msgstr ""
+msgstr "Elimina articolo fornitore"
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
-msgstr ""
+msgstr "Elimina"
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
-msgstr ""
+msgstr "Parametri"
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
-msgstr ""
+msgstr "Nuovo Parametro"
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
-msgstr ""
+msgstr "Elimina il parametro"
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
-msgstr ""
+msgstr "Aggiungi parametro"
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
-msgstr ""
+msgstr "Gli eventi selezionati verranno eliminati"
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
-msgstr ""
+msgstr "Elimina Parametri"
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
-msgstr ""
+msgstr "Articolo Fornitore"
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
-msgid "Edit supplier part"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:48
+#: company/templates/company/supplier_part.html:38
#: templates/js/translated/company.js:860
+msgid "Edit supplier part"
+msgstr "Modifica articolo fornitore"
+
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
-msgstr ""
+msgstr "Elimina articolo fornitore"
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
-msgstr ""
+msgstr "Fornitore articolo in giacenza"
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr "Crea nuova allocazione magazzino"
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr "Nuovo Elemento in giacenza"
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
-msgstr ""
+msgstr "Ordini articoli fornitore"
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
-msgstr ""
+msgstr "Ordine Articolo"
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
-msgstr ""
+msgstr "Informazioni Prezzi"
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
-msgstr ""
+msgstr "Aggiungi riduzione prezzo"
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
-msgstr ""
+msgstr "Nessuna informazione di riduzione di prezzo trovata"
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
-msgstr ""
+msgstr "Elimina riduzione di prezzo"
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
-msgstr ""
+msgstr "Modifica riduzione di prezzo"
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
-msgstr ""
+msgstr "Cancella riduzione di prezzo"
+
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr "Magazzino"
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr "Ordini"
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
-msgstr ""
+msgstr "Prezzo articolo del fornitore"
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
-msgstr ""
+msgstr "Prezzi"
+
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr "Articoli in magazzino"
#: company/views.py:50
msgid "New Supplier"
-msgstr ""
-
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
+msgstr "Nuovo Fornitore"
#: company/views.py:56
msgid "New Manufacturer"
-msgstr ""
+msgstr "Nuovo Produttore"
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
-msgstr ""
+msgstr "Clienti"
#: company/views.py:62
msgid "New Customer"
-msgstr ""
+msgstr "Nuovo cliente"
#: company/views.py:69
msgid "Companies"
-msgstr ""
+msgstr "Aziende"
#: company/views.py:70
msgid "New Company"
-msgstr ""
+msgstr "Nuova Azienda"
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
-msgstr ""
+msgstr "Download Immagine"
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
-msgstr ""
+msgstr "La dimensione dell'immagine supera la dimensione massima consentita per il download"
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
-msgstr ""
+msgstr "Risposta non valida: {code}"
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
-msgstr ""
+msgstr "L'URL fornito non è un file immagine valido"
#: label/api.py:57 report/api.py:201
msgid "No valid objects provided to template"
-msgstr ""
+msgstr "Nessun oggetto valido fornito nel modello"
#: label/models.py:113
msgid "Label name"
-msgstr ""
+msgstr "Nome etichetta"
#: label/models.py:120
msgid "Label description"
-msgstr ""
+msgstr "Descrizione etichetta"
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
-msgstr ""
+msgstr "Etichetta"
#: label/models.py:128
msgid "Label template file"
-msgstr ""
+msgstr "File modello etichetta"
#: label/models.py:134 report/models.py:298
msgid "Enabled"
-msgstr ""
+msgstr "Abilitato"
#: label/models.py:135
msgid "Label template is enabled"
-msgstr ""
+msgstr "Modello di etichetta abilitato"
#: label/models.py:140
msgid "Width [mm]"
-msgstr ""
+msgstr "Larghezza [mm]"
#: label/models.py:141
msgid "Label width, specified in mm"
-msgstr ""
+msgstr "Larghezza dell'etichetta, specificata in mm"
#: label/models.py:147
msgid "Height [mm]"
-msgstr ""
+msgstr "Altezza [mm]"
#: label/models.py:148
msgid "Label height, specified in mm"
-msgstr ""
+msgstr "Larghezza dell'etichetta, specificata in mm"
#: label/models.py:154 report/models.py:291
msgid "Filename Pattern"
@@ -3041,7 +2961,7 @@ msgstr ""
#: label/models.py:259 label/models.py:319 label/models.py:366
#: report/models.py:322 report/models.py:457 report/models.py:495
msgid "Filters"
-msgstr ""
+msgstr "Filtri"
#: label/models.py:318
msgid "Query filters (comma-separated list of key=value pairs"
@@ -3051,242 +2971,238 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
-msgstr ""
+msgstr "Invia l'ordine"
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
-msgstr ""
+msgstr "Contrassegna ordine come completato"
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
-msgstr ""
+msgstr "Annulla l'ordine"
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
-msgstr ""
+msgstr "Spedizione ordine"
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
-msgstr ""
+msgstr "Inserisci i numeri di serie dell'articolo in giacenza"
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
-msgstr ""
+msgstr "Inserisci la quantità di articoli disponibili"
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
-msgstr ""
+msgstr "Descrizione ordine"
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
-msgstr ""
+msgstr "Creato Da"
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
-msgstr ""
+msgstr "Utente o gruppo responsabile di questo ordine"
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
-msgstr ""
+msgstr "Note ordine"
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
-msgstr ""
+msgstr "Riferimento ordine"
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
-msgstr ""
-
-#: order/models.py:261
-msgid "Company from which the items are being ordered"
-msgstr ""
-
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
-msgid "Supplier Reference"
-msgstr ""
+msgstr "Stato ordine d'acquisto"
#: order/models.py:264
+msgid "Company from which the items are being ordered"
+msgstr "Azienda da cui sono stati ordinati gli articoli"
+
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
+msgid "Supplier Reference"
+msgstr "Riferimento fornitore"
+
+#: order/models.py:267
msgid "Supplier order reference code"
-msgstr ""
+msgstr "Codice di riferimento ordine fornitore"
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
-msgstr ""
+msgstr "ricevuto da"
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
-msgstr ""
+msgstr "Data di emissione"
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
-msgstr ""
+msgstr "Data di emissione ordine"
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
-msgstr ""
+msgstr "Data di consegna programmata"
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
-msgstr ""
+msgstr "Data prevista per la consegna dell'ordine. L'ordine scadrà dopo questa data."
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
-msgstr ""
+msgstr "Data ordine completato"
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
-msgstr ""
+msgstr "Articolo Fornitore"
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
-msgstr ""
+msgstr "La quantità di ripartizione non puo' superare la disponibilità della giacenza"
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
-msgstr ""
+msgstr "Inserisci la quantità assegnata alla giacenza"
#: order/serializers.py:167
msgid "Purchase price currency"
@@ -3300,9 +3216,9 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
-msgstr ""
+msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti"
#: order/serializers.py:242
msgid "Barcode Hash"
@@ -3312,74 +3228,72 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
-msgstr ""
+msgstr "La destinazione deve essere specificata"
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
-msgstr ""
+msgstr "Ricevere articoli"
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
-msgstr ""
+msgstr "Riferimento ordine"
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
-msgstr ""
+msgstr "Stato dell'ordine"
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
-msgstr ""
+msgstr "Emesso"
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
-msgstr ""
+msgstr "Modifica ordine d'acquisto"
#: order/templates/order/order_cancel.html:8
msgid "Cancelling this order means that the order and line items will no longer be editable."
@@ -3436,14 +3350,14 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_fields.html:35
#: part/templates/part/import_wizard/match_fields.html:42
msgid "Remove column"
-msgstr ""
+msgstr "Elimina colonna"
#: order/templates/order/order_wizard/match_fields.html:60
#: part/templates/part/bom_upload/match_fields.html:60
#: part/templates/part/import_wizard/ajax_match_fields.html:53
#: part/templates/part/import_wizard/match_fields.html:60
msgid "Duplicate selection"
-msgstr ""
+msgstr "Duplica selezionati"
#: order/templates/order/order_wizard/match_fields.html:71
#: order/templates/order/order_wizard/match_parts.html:52
@@ -3453,34 +3367,35 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
-msgstr ""
+msgstr "Elimina riga"
#: order/templates/order/order_wizard/match_parts.html:12
#: part/templates/part/bom_upload/match_parts.html:12
#: part/templates/part/import_wizard/ajax_match_references.html:12
#: part/templates/part/import_wizard/match_references.html:12
msgid "Errors exist in the submitted data"
-msgstr ""
+msgstr "Errori esistenti nei dati inviati"
#: order/templates/order/order_wizard/match_parts.html:28
#: part/templates/part/bom_upload/match_parts.html:28
#: part/templates/part/import_wizard/ajax_match_references.html:21
#: part/templates/part/import_wizard/match_references.html:28
msgid "Row"
-msgstr ""
+msgstr "Riga"
#: order/templates/order/order_wizard/match_parts.html:29
msgid "Select Supplier Part"
-msgstr ""
+msgstr "Seleziona l'articolo del fornitore"
#: order/templates/order/order_wizard/po_upload.html:11
msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3493,19 +3408,19 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:11
msgid "Step 1 of 2 - Select Part Suppliers"
-msgstr ""
+msgstr "Fase 1 di 2 - Selezionare fornitori dell'articolo"
#: order/templates/order/order_wizard/select_parts.html:16
msgid "Select suppliers"
-msgstr ""
+msgstr "Seleziona fornitori"
#: order/templates/order/order_wizard/select_parts.html:20
msgid "No purchaseable parts selected"
-msgstr ""
+msgstr "Nessun articolo acquistabile selezionato"
#: order/templates/order/order_wizard/select_parts.html:33
msgid "Select Supplier"
-msgstr ""
+msgstr "Seleziona fornitore"
#: order/templates/order/order_wizard/select_parts.html:57
msgid "No price"
@@ -3519,7 +3434,7 @@ msgstr ""
#: order/templates/order/order_wizard/select_parts.html:77
#: part/templates/part/set_category.html:32
msgid "Remove part"
-msgstr ""
+msgstr "Rimuovi parte"
#: order/templates/order/order_wizard/select_pos.html:8
msgid "Step 2 of 2 - Select Purchase Orders"
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3635,7 +3575,7 @@ msgstr ""
#: order/templates/order/sales_order_ship.html:12
msgid "Ensure that the order allocation is correct before shipping the order."
-msgstr ""
+msgstr "Assicurarsi che l'assegnazione degli ordini sia corretta prima di spedire l'ordine."
#: order/templates/order/sales_order_ship.html:18
msgid "Some line items in this order have been over-allocated"
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,42 +3700,30 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
-msgstr ""
+msgstr "Specifica la posizione per lo stock iniziale"
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
-msgstr ""
+msgstr "Posizione Predefinita"
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
-msgstr ""
+msgstr "Disponibilità in magazzino"
#: part/forms.py:63
msgid "File Format"
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3887,470 +3799,472 @@ msgstr ""
#: part/forms.py:127
msgid "validate"
-msgstr ""
+msgstr "convalida"
#: part/forms.py:127
msgid "Confirm that the BOM is correct"
-msgstr ""
+msgstr "Conferma che la Distinta Base (BOM) è corretta"
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
-msgstr ""
+msgstr "Seleziona categoria articolo"
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
-msgstr ""
+msgstr "Digita la quantità per il calcolo del prezzo"
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
-msgstr ""
+msgstr "Posizione predefinita per gli articoli di questa categoria"
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
-msgstr ""
+msgstr "Keywords predefinite"
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
-msgstr ""
+msgstr "Parole chiave predefinite per gli articoli in questa categoria"
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
-msgstr ""
+msgstr "Categoria Articoli"
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
-msgstr ""
+msgstr "Categorie Articolo"
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr "Articoli"
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
-msgstr ""
+msgstr "Scelta non valida per l'articolo principale"
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
-msgstr ""
+msgstr "I successivi numeri di serie disponibili sono"
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
-msgstr ""
+msgstr "Il prossimo numero di serie disponibile è"
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
-msgstr ""
+msgstr "Il numero di serie più recente è"
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
-msgstr ""
+msgstr "Non è consentito duplicare IPN nelle impostazioni dell'articolo"
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
-msgstr ""
+msgstr "Nome articolo"
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
-msgstr ""
+msgstr "È Template"
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
-msgstr ""
+msgstr "Quest'articolo è un articolo di template?"
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
-msgstr ""
+msgstr "Questa parte è una variante di un altro articolo?"
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
-msgstr ""
+msgstr "Variante Di"
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
-msgstr ""
+msgstr "Descrizione articolo"
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
-msgstr ""
+msgstr "Parole Chiave"
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
-msgstr ""
+msgstr "Parole chiave per migliorare la visibilità nei risultati di ricerca"
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
-msgstr ""
+msgstr "Categoria"
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
-msgstr ""
+msgstr "Categoria articolo"
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
-msgstr ""
+msgstr "IPN - Numero di riferimento interno"
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
-msgstr ""
+msgstr "Numero Dell'articolo Interno"
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
-msgstr ""
+msgstr "Numero di revisione o di versione"
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
-msgstr ""
+msgstr "Revisione"
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
-msgstr ""
+msgstr "Dove viene normalmente immagazzinato questo articolo?"
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
-msgstr ""
+msgstr "Fornitore predefinito"
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
-msgstr ""
+msgstr "Articolo fornitore predefinito"
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
-msgstr ""
+msgstr "Scadenza Predefinita"
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
-msgstr ""
+msgstr "Scadenza (in giorni) per gli articoli in giacenza di questo pezzo"
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
-msgstr ""
+msgstr "Scorta Minima"
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
-msgstr ""
+msgstr "Livello minimo di giacenza consentito"
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
-msgstr ""
+msgstr "Unità di conservazione delle scorte per quest'articolo"
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
-msgstr ""
+msgstr "Quest'articolo può essere acquistato da fornitori esterni?"
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
-msgstr ""
+msgstr "Questo pezzo può essere venduto ai clienti?"
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
-msgstr ""
+msgstr "Attivo"
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
-msgstr ""
+msgstr "Quest'articolo è attivo?"
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
-msgstr ""
+msgstr "È una parte virtuale, come un prodotto software o una licenza?"
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
-msgstr ""
+msgstr "Note dell'articolo - supporta la formattazione Markdown"
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
-msgstr ""
+msgstr "BOM checksum"
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
-msgstr ""
+msgstr "Descrizione Di Prova"
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
-msgstr ""
+msgstr "Consenti Le Varianti"
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr "Notifica di magazzino bassa"
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
-msgstr ""
+msgid "Delete Items"
+msgstr "Elimina Elementi"
#: part/templates/part/bom_duplicate.html:13
msgid "This part already has a Bill of Materials"
@@ -4358,30 +4272,29 @@ msgstr ""
#: part/templates/part/bom_upload/match_parts.html:29
msgid "Select Part"
+msgstr "Seleziona Articolo"
+
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
-msgstr ""
-
-#: part/templates/part/bom_upload/upload_file.html:27
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,137 +4307,147 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
-msgstr ""
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr "Sei iscritto alle notifiche di questa categoria"
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
+msgstr "Sottoscrivi notifiche per questa categoria"
#: part/templates/part/category.html:38
-msgid "Create new part category"
-msgstr ""
+msgid "Category Actions"
+msgstr "Azioni Categoria"
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
+msgstr "Modifica categoria"
#: part/templates/part/category.html:44
-msgid "Edit part category"
-msgstr ""
+msgid "Edit Category"
+msgstr "Modifica Categoria"
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
+msgstr "Elimina la categoria"
#: part/templates/part/category.html:49
-msgid "Delete part category"
-msgstr ""
+msgid "Delete Category"
+msgstr "Cancella categoria"
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
-msgstr ""
+#: part/templates/part/category.html:57
+msgid "Create new part category"
+msgstr "Crea nuova categoria articoli"
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr "Nuova categoria"
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr "Categoria articolo di livello superiore"
+
+#: part/templates/part/category.html:79
msgid "Category Path"
-msgstr ""
+msgstr "Percorso Categoria"
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
-msgstr ""
+msgstr "Descrizione Categoria"
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
-msgstr ""
+msgstr "Sottocategorie"
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
-msgstr ""
+msgstr "Articoli (incluse le sottocategorie)"
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
-msgstr ""
+msgstr "Esporta dati articolo"
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
-msgstr ""
-
-#: part/templates/part/category.html:130
-msgid "Create new part"
-msgstr ""
-
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
-msgid "New Part"
-msgstr ""
-
-#: part/templates/part/category.html:138
-msgid "Set category"
-msgstr ""
-
-#: part/templates/part/category.html:138
-msgid "Set Category"
-msgstr ""
-
-#: part/templates/part/category.html:141
-msgid "Print Labels"
-msgstr ""
-
-#: part/templates/part/category.html:142
-msgid "Export Data"
-msgstr ""
-
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
+msgstr "Esporta"
#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
+msgid "Create new part"
+msgstr "Crea nuovo articolo"
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
+msgid "New Part"
+msgstr "Nuovo articolo"
+
+#: part/templates/part/category.html:164
+msgid "Set category"
+msgstr "Imposta categoria"
+
+#: part/templates/part/category.html:164
+msgid "Set Category"
+msgstr "Imposta Categoria"
+
+#: part/templates/part/category.html:168
+msgid "Print Labels"
+msgstr "Stampa Etichette"
+
+#: part/templates/part/category.html:170
+msgid "Export Data"
+msgstr "Esporta Dati"
+
+#: part/templates/part/category.html:184
msgid "Part Parameters"
-msgstr ""
+msgstr "Parametri articolo"
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
-msgstr ""
+msgstr "Crea Categoria Articolo"
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
-msgstr ""
+msgstr "Crea Articolo"
#: part/templates/part/category_delete.html:5
msgid "Are you sure you want to delete category"
-msgstr ""
+msgstr "Sei sicuro di voler eliminare la categoria"
#: part/templates/part/category_delete.html:8
#, python-format
msgid "This category contains %(count)s child categories"
-msgstr ""
+msgstr "Questa categoria contiene %(count)s sottocategorie"
#: part/templates/part/category_delete.html:9
msgid "If this category is deleted, these child categories will be moved to the"
-msgstr ""
+msgstr "Se questa categoria viene eliminata, queste sottocategorie verranno spostate al"
#: part/templates/part/category_delete.html:11
msgid "category"
-msgstr ""
+msgstr "categoria"
#: part/templates/part/category_delete.html:13
msgid "top level Parts category"
-msgstr ""
+msgstr "categoria articolo di livello superiore"
#: part/templates/part/category_delete.html:25
#, python-format
msgid "This category contains %(count)s parts"
-msgstr ""
+msgstr "Questa categoria contiene %(count)s sottocategorie"
#: part/templates/part/category_delete.html:27
#, python-format
msgid "If this category is deleted, these parts will be moved to the parent category %(path)s"
-msgstr ""
+msgstr "Se questa categoria viene eliminata, queste parti verranno spostate nella categoria superiore %(path)s"
#: part/templates/part/category_delete.html:29
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
-msgstr ""
+msgstr "Assegnazione Ordine Di Vendita"
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
-msgstr ""
+msgstr "Articoli correlati"
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
+msgstr "Distinta base"
+
+#: part/templates/part/detail.html:345
+msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
-msgstr ""
+msgstr "Fornitori articoli"
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
-msgstr ""
+msgstr "Componenti Produttori"
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr "Articoli correlati"
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
-msgstr ""
+msgstr "Azioni Barcode"
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
-msgstr ""
+msgstr "Mostra QR Code"
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
-msgstr ""
+msgstr "Stampa Etichetta"
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
-msgstr ""
+msgstr "Azioni magazzino"
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
-msgstr ""
+msgstr "Duplica articolo"
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
-msgstr ""
+msgstr "Modifica articolo"
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
+msgstr "Cancella articolo"
+
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr "L'articolo può essere acquistato da fornitori esterni"
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr "La parte può essere venduta ai clienti"
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr "Inattivo"
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
-msgstr ""
+msgstr "In magazzino"
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
-msgstr ""
+msgstr "Ordinato"
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4874,10 +4809,10 @@ msgstr ""
#: part/templates/part/prices.html:59 part/templates/part/prices.html:108
#: part/templates/part/prices.html:125
msgid "Total Cost"
-msgstr ""
+msgstr "Costo Totale"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4940,12 +4887,12 @@ msgstr ""
#: part/templates/part/partial_delete.html:43
#, python-format
msgid "There are %(count)s manufacturers defined for this part. If you delete this part, the following manufacturer parts will also be deleted:"
-msgstr ""
+msgstr "Ci sono %(count)s produttori definiti per questa parte. Se elimini questa parte, verranno eliminate anche le seguenti parti del produttore:"
#: part/templates/part/partial_delete.html:54
#, python-format
msgid "There are %(count)s suppliers defined for this part. If you delete this part, the following supplier parts will also be deleted:"
-msgstr ""
+msgstr "Ci sono %(count)s fornitori definiti per questo articolo. Se elimini questo, verranno eliminate anche i seguenti articoli del fornitore:"
#: part/templates/part/partial_delete.html:65
#, python-format
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5020,17 +4967,17 @@ msgstr ""
#: part/templates/part/set_category.html:9
msgid "Set category for the following parts"
-msgstr ""
+msgstr "Imposta categoria per i seguenti articoli"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
-msgstr ""
+msgstr "Nessuna giacenza"
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
-msgstr ""
+msgstr "Disponibilità scarsa"
#: part/templates/part/variant_part.html:9
msgid "Create new part variant"
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
-msgstr ""
+msgstr "Database sconosciuto"
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
-msgstr ""
+msgstr "Imposta categoria articolo"
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
-msgstr ""
+msgstr "Imposta categoria per {n} articoli"
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr "Esporta Distinta base"
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
-msgstr ""
+msgstr "Modifica Categoria Articoli"
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
-msgstr ""
+msgstr "Elimina categoria"
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
-msgstr ""
+msgstr "La Categoria articoli è stata eliminata"
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
-msgstr ""
+msgstr "Crea Template Parametro Categoria"
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
-msgstr ""
+msgstr "Modifica Modello Parametro Categoria"
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
-msgstr ""
+msgstr "Elimina Modello Parametro Categoria"
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,33 +5197,37 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
-msgstr ""
+msgstr "Data"
#: report/templates/report/inventree_test_report_base.html:103
msgid "Pass"
@@ -5292,518 +5235,540 @@ msgstr ""
#: report/templates/report/inventree_test_report_base.html:105
msgid "Fail"
-msgstr ""
+msgstr "Fallito"
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr "La quantità è richiesta"
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
-msgstr ""
+msgstr "Data di Scadenza"
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
-msgstr ""
+msgstr "Posizione di destinazione per gli elementi disinstallati"
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
-msgstr ""
+msgstr "Conferma la disinstallazione"
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
-msgstr ""
+msgstr "Seleziona Owner"
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
-msgstr ""
+msgstr "Articolo base"
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
-msgstr ""
+msgstr "Ubicazione magazzino"
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
-msgstr ""
+msgstr "Installato In"
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
-msgstr ""
+msgstr "Quantità disponibile"
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
-msgstr ""
+msgstr "Elimina al esaurimento"
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
+msgstr ""
+
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
+msgstr ""
+
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
+msgstr ""
+
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
+msgid "Destination stock location"
+msgstr "Posizione magazzino di destinazione"
+
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:452
+#: stock/serializers.py:585
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:462
+#: stock/serializers.py:595
msgid "A list of stock items must be provided"
msgstr ""
-#: stock/serializers.py:554
-msgid "Destination stock location"
-msgstr ""
-
-#: stock/templates/stock/item.html:17
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
-msgstr ""
+msgstr "Scansiona nella posizione"
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
-msgstr ""
+msgstr "Conta giacenza"
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
-msgstr ""
+msgstr "Aggiungi giacenza"
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
-msgstr ""
+msgstr "Rimuovi giacenza"
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
-msgstr ""
+msgstr "Trasferisci giacenza"
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
-msgstr ""
+msgstr "pagina precedente"
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
-msgstr ""
+msgstr "pagina successiva"
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
-msgstr ""
+msgstr "Nessuna posizione impostata"
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
-msgstr ""
+msgstr "Ultimo aggiornamento"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
-msgstr ""
+msgstr "Ultimo Inventario"
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
-msgstr ""
+msgstr "Nessun inventario eseguito"
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
-msgstr ""
+msgstr "Articoli controllati"
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
-msgstr ""
+msgstr "Azioni posizione"
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
-msgstr ""
+msgstr "Modifica la posizione"
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
-msgstr ""
+msgstr "Elimina la posizione"
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
-msgstr ""
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
+msgstr "Crea nuova posizione di magazzino"
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
-msgstr ""
+#: stock/templates/stock/location.html:76
+msgid "New Location"
+msgstr "Nuova Posizione"
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
-msgstr ""
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
+msgstr "Posizione stock di livello superiore"
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr "Non sei nell'elenco dei proprietari di questa posizione. Questa posizione di giacenza non può essere modificata."
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
-msgstr ""
+msgstr "Sottoallocazioni"
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
-msgstr ""
+msgstr "Posizioni magazzino"
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
-msgstr ""
+msgstr "Azioni di stampa"
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
-msgstr ""
-
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
+msgstr "Stampa etichette"
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
-msgstr ""
-
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
-msgstr ""
-
-#: stock/templates/stock/navbar.html:14
-msgid "History"
-msgstr ""
-
-#: stock/templates/stock/navbar.html:30
-msgid "Installed Items"
-msgstr ""
-
-#: stock/templates/stock/navbar.html:38
-msgid "Child Items"
-msgstr ""
-
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
+msgstr "Sei sicuro di voler eliminare questa posizione?"
#: stock/templates/stock/stock_app_base.html:16
msgid "Loading..."
msgstr ""
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
-msgstr ""
+msgstr "Modifica Posizione Giacenza"
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
-msgstr ""
+msgstr "QR Code della posizione magazzino"
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
-msgstr ""
+msgstr "Specificare una posizione valida"
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
-msgstr ""
+msgstr "Crea una nuova Posizione di Giacenza"
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
-msgstr ""
+msgstr "Elimina Posizione di Giacenza"
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr "Categoria sottoscritta"
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
-msgstr ""
+msgstr "Risultati della Ricerca"
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6177,142 +6109,58 @@ msgstr ""
#: templates/InvenTree/settings/category.html:7
msgid "Category Settings"
-msgstr ""
+msgstr "Impostazioni categoria"
#: templates/InvenTree/settings/currencies.html:8
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
-msgstr ""
+msgstr "Vauta di base"
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
-msgstr ""
+msgstr "Mai"
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
-msgstr ""
+msgstr "Aggiorna Ora"
#: templates/InvenTree/settings/global.html:9
msgid "Server Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
+msgstr "Impostazioni Server"
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
-msgstr ""
+msgstr "Impostazioni di accesso"
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
+msgstr "Registrati"
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
+msgstr "Impostazioni articolo"
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
-msgid "No category parameter templates found"
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
+msgid "No category parameter templates found"
+msgstr "Nessun parametro di categoria trovato"
+
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr "Impostazioni Utente"
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr "Impostazioni di ricerca"
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
-msgstr ""
+msgstr "Modifica"
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
-msgstr ""
+msgstr "Modifica Password"
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
-msgstr ""
+msgstr "Nome utente"
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
-msgstr ""
+msgstr "Nome"
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
+msgstr "Cognome"
+
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
-msgstr ""
+msgstr "Verificato"
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
-msgstr ""
+msgstr "Non verificato"
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
-msgstr ""
+msgstr "Principale"
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
-msgstr ""
+msgstr "Rendi principale"
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
-msgstr ""
+msgstr "Re-invia il codice di verifica"
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:80
-msgid "Warning:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
-msgstr ""
+msgstr "Rimuovi"
#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+msgid "Warning:"
+msgstr "Attenzione:"
+
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
+msgstr "Aggiungi indirizzo email"
+
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
+msgstr "Inserisci il tuo indirizzo email"
+
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr "Aggiungi Email"
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,151 +6430,161 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
-msgstr ""
+msgstr "Informazioni Versione InvenTree"
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr "Chiudi"
+
+#: templates/about.html:20
msgid "InvenTree Version"
-msgstr ""
+msgstr "Versione di InvenTree"
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
-msgstr ""
+msgstr "Aggiornato"
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
-msgstr ""
+msgstr "Documentazione InvenTree"
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
-msgstr ""
+msgid "Confirm Email Address"
+msgstr "Conferma l'indirizzo e-mail"
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
-msgstr ""
+msgstr "Accedi"
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
-msgstr ""
+msgstr "Se non hai ancora creato un account, per favore\n"
+"registrati prima."
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
+msgstr "Password dimenticata?"
+
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr "Clicca qui per i dettagli di accesso"
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
-msgstr ""
+msgstr "Esci"
#: templates/account/logout.html:10
msgid "Are you sure you want to sign out?"
-msgstr ""
+msgstr "Sei sicuro di voler uscire?"
+
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr "Torna al sito"
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
-msgstr ""
+msgstr "Reimposta Password"
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
-msgstr ""
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
+msgstr "Hai dimenticato la password? Inserisci il tuo indirizzo e-mail qui sotto, e ti invieremo una e-mail che ti permetterà di reimpostarla."
#: templates/account/password_reset.html:23
msgid "Reset My Password"
-msgstr ""
+msgstr "Reimposta la Mia Password"
#: templates/account/password_reset.html:27 templates/account/signup.html:36
msgid "This function is currently disabled. Please contact an administrator."
-msgstr ""
+msgstr "Questa funzione è attualmente disabilitata. Contatta un amministratore."
#: templates/account/password_reset_from_key.html:7
msgid "Bad Token"
@@ -6654,29 +6593,100 @@ msgstr ""
#: templates/account/password_reset_from_key.html:11
#, python-format
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
-msgstr ""
+msgstr "Il link di reset della password non era valido, forse perché è già stato utilizzato. Si prega di richiedere un nuovo reset della password."
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
-msgstr ""
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
+msgstr "Cambia password"
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
-msgstr ""
+msgstr "La tua password è stata modificata."
#: templates/account/signup.html:11 templates/account/signup.html:22
msgid "Sign Up"
-msgstr ""
+msgstr "Registrati"
#: templates/account/signup.html:13
#, python-format
msgid "Already have an account? Then please sign in."
-msgstr ""
+msgstr "Hai già un account? Allora accedi."
#: templates/account/signup.html:27
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr "Visualizza nel pannello di amministrazione"
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr "È necessario riavviare il server"
+
+#: templates/base.html:99
+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:99
+msgid "Contact your system administrator for further information"
+msgstr "Contatta l'amministratore per maggiori informazioni"
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr "Quantità richiesta"
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr "Disponibile"
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr "Versione di InvenTree"
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr "Giacenze Totali"
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr "Quantità minima"
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6687,15 +6697,15 @@ msgstr ""
#: templates/image_download.html:12
msgid "Remote server must be accessible"
-msgstr ""
+msgstr "Il server remoto deve essere accessibile"
#: templates/image_download.html:13
msgid "Remote image must not exceed maximum allowable file size"
-msgstr ""
+msgstr "L'immagine remota non deve superare la dimensione massima consentita del file"
#: templates/js/report.js:47 templates/js/translated/report.js:67
msgid "items selected"
-msgstr ""
+msgstr "elementi selezionati"
#: templates/js/report.js:55 templates/js/translated/report.js:75
msgid "Select Report Template"
@@ -6706,7 +6716,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,10 +6748,10 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
-msgstr ""
+msgstr "Seleziona Articoli"
#: templates/js/report.js:206 templates/js/translated/report.js:226
msgid "Part(s) must be selected before printing reports"
@@ -6772,59 +6782,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6842,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
-msgstr ""
+msgstr "Controlla gli elementi in magazzino nella posizione"
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
-msgstr ""
+msgstr "Elemento in giacenza già in questa posizione"
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
-msgstr ""
+msgstr "Controlla Nella Posizione"
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
+msgstr "Il codice a barre non corrisponde a una posizione valida"
+
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr "Posizione non specificata"
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr "Modifica allocazione magazzino"
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr "Elimina posizione giacenza"
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr "Modifica Posizione"
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr "Rimuovi Posizione"
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
-msgstr ""
+msgstr "Specificare il quantitativo assegnato allo stock"
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
-msgstr ""
+msgstr "Seleziona la posizione di origine (lascia vuoto per prendere da tutte le posizioni)"
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
-msgstr ""
+msgstr "Conferma l'assegnazione della giacenza"
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
-msgstr ""
+msgstr "Nessuna posizione di magazzino corrispondente"
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7207,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,873 +7219,942 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
-msgstr ""
+msgstr "Aggiungi fornitore"
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
-msgstr ""
+msgstr "Aggiungi fornitore articolo"
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
-msgstr ""
+msgstr "Modifica fornitore articolo"
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
-msgstr ""
+msgstr "Modifica azienda"
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
-msgstr ""
+msgstr "Fornitori articoli"
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
-msgstr ""
+msgstr "Modifica parametro"
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
-msgstr ""
+msgstr "Elimina il parametro"
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
-msgstr ""
+msgstr "Modifica parametro"
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
-msgstr ""
+msgstr "Elimina Parametri"
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
-msgstr ""
+msgstr "Nessun fornitore trovato"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
-msgstr ""
+msgstr "vero"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
-msgstr ""
+msgstr "falso"
#: templates/js/translated/filters.js:204
msgid "Select filter"
-msgstr ""
-
-#: templates/js/translated/filters.js:284
-msgid "Reload data"
-msgstr ""
+msgstr "Seleziona filtro"
#: templates/js/translated/filters.js:286
+msgid "Reload data"
+msgstr "Ricarica dati"
+
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
-msgstr ""
+msgstr "Aggiungi nuovo filtro"
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
-msgstr ""
+msgstr "Cancella tutti i filtri"
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
-msgstr ""
+msgstr "Crea filtro"
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
-msgstr ""
+msgstr "Azione Vietata"
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
-msgstr ""
+msgstr "Crea operazione non consentita"
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
-msgstr ""
+msgstr "Operazione di aggiornamento non consentita"
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
-msgstr ""
+msgstr "Operazione di eliminazione non consentita"
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
-msgstr ""
+msgstr "Mostra operazione non consentita"
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr "Inserisci un numero valido"
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
-msgstr ""
+msgstr "Nessun risultato trovato"
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
-msgstr ""
+msgstr "Ricerca"
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
-msgstr ""
+msgstr "Cancella input"
#: templates/js/translated/helpers.js:19
msgid "YES"
-msgstr ""
+msgstr "SÌ"
#: templates/js/translated/helpers.js:21
msgid "NO"
-msgstr ""
+msgstr "NO"
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
-msgstr ""
+msgstr "Gli elementi disponibili devono essere selezionati prima di stampare le etichette"
#: templates/js/translated/label.js:48 templates/js/translated/label.js:98
#: templates/js/translated/label.js:153
msgid "No Labels Found"
-msgstr ""
+msgstr "Nessuna etichetta trovata"
#: templates/js/translated/label.js:49
msgid "No labels found which match selected stock item(s)"
-msgstr ""
+msgstr "Nessuna etichetta trovata che corrisponde agli elementi stock selezionati"
#: templates/js/translated/label.js:80
msgid "Select Stock Locations"
-msgstr ""
+msgstr "Seleziona Posizioni Giacenza"
#: templates/js/translated/label.js:81
msgid "Stock location(s) must be selected before printing labels"
-msgstr ""
+msgstr "Le allocazioni delle giacenze devono essere selezionate prima di stampare le etichette"
#: templates/js/translated/label.js:99
msgid "No labels found which match selected stock location(s)"
-msgstr ""
+msgstr "Nessuna etichetta trovata che corrisponde alle posizioni di magazzino selezionate"
#: templates/js/translated/label.js:135
msgid "Part(s) must be selected before printing labels"
-msgstr ""
+msgstr "Gli elementi disponibili devono essere selezionati prima di stampare le etichette"
#: templates/js/translated/label.js:154
msgid "No labels found which match the selected part(s)"
-msgstr ""
+msgstr "Nessuna etichetta trovata che corrisponde agli elementi stock selezionati"
#: templates/js/translated/label.js:228
msgid "stock items selected"
-msgstr ""
+msgstr "elemento stock creato"
#: templates/js/translated/label.js:236
msgid "Select Label"
-msgstr ""
+msgstr "Seleziona l'etichetta"
#: templates/js/translated/label.js:251
msgid "Select Label Template"
-msgstr ""
+msgstr "Seleziona Modello Etichetta"
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
-msgstr ""
+msgstr "Annulla"
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
-msgstr ""
+msgstr "Invia"
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
-msgstr ""
+msgstr "Titolo modulo"
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
-msgstr ""
+msgstr "In attesa del server..."
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
-msgstr ""
+msgstr "Informazioni sull'errore"
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
-msgstr ""
+msgstr "Accetta"
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
-msgstr ""
+msgstr "Risposta dal server non valida"
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
#: templates/js/translated/model_renderers.js:40
msgid "Company ID"
-msgstr ""
+msgstr "ID azienda"
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
-msgstr ""
+msgstr "ID Giacenza"
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
-msgstr ""
+msgstr "ID Posizione"
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
-msgstr ""
+msgstr "Codice Articolo"
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
-msgstr ""
+msgstr "ID Ordine"
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
-msgstr ""
+msgstr "Id Categoria"
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
-msgstr ""
+msgstr "ID articolo produttore"
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
#: templates/js/translated/order.js:48
msgid "Add Customer"
-msgstr ""
+msgstr "Aggiungi cliente"
#: templates/js/translated/order.js:73
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
-msgstr ""
+msgstr "Formato"
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
-msgstr ""
+msgstr "Quantità da ricevere"
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
-msgstr ""
-
-#: templates/js/translated/order.js:426
-msgid "Order Code"
-msgstr ""
+msgstr "Stato giacenza"
#: templates/js/translated/order.js:427
+msgid "Order Code"
+msgstr "Codice ordine"
+
+#: templates/js/translated/order.js:428
msgid "Ordered"
-msgstr ""
+msgstr "Ordinato"
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
-msgstr ""
+msgstr "Ricevuto"
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
-msgstr ""
+msgstr "Totale"
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
-msgstr ""
+msgstr "Prezzo Unitario"
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
-msgstr ""
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
+msgstr "Prezzo Totale"
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
-msgstr ""
+msgstr "Cliente non valido"
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
-msgstr ""
+msgstr "Nessun ordine di vendita trovato"
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
-msgstr ""
+msgstr "Modifica posizione giacenza"
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
-msgstr ""
+msgstr "Elimina posizione giacenza"
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
-msgstr ""
+msgstr "Nessun posizione specificata"
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
-msgstr ""
+msgstr "Soddisfatto"
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
-msgstr ""
+msgstr "Prezzo d'acquisto"
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
-msgstr ""
+msgstr "Calcola il prezzo"
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
-msgstr ""
+msgstr "Attributi Articolo"
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
-msgstr ""
+msgstr "Opzioni Fornitore"
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
-msgstr ""
+msgstr "Aggiungi Categoria Articolo"
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
-msgstr ""
+msgstr "Crea giacenza iniziale"
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
-msgstr ""
+msgstr "Crea una giacenza iniziale per quest'articolo"
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
-msgstr ""
+msgstr "Quantità iniziale"
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
-msgstr ""
+msgstr "Selezione la posizione di destinazione della giacenza"
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
-msgstr ""
+msgstr "Copia Parametri Categoria"
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
-msgstr ""
+msgstr "Aggiungi Dati Fornitore"
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
-msgstr ""
+msgstr "Copia immagine"
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
-msgstr ""
+msgstr "Copia immagine dall'articolo originale"
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
-msgstr ""
+msgstr "Copia parametri"
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
-msgstr ""
+msgstr "Categoria articolo principale"
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
+msgstr "Modifica l'articolo"
+
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr "Articolo modificato"
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
-msgstr ""
+msgstr "Parte virtuale"
-#: templates/js/translated/part.js:435
-msgid "Starred part"
-msgstr ""
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
+msgstr "Parte sottoscritta"
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
-msgstr ""
+msgstr "Parte vendibile"
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
+msgstr "Nessuna variante trovata"
+
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
-msgstr ""
+msgstr "Nessun articolo trovato"
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
-msgstr ""
+msgstr "Nessuna categoria"
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
-msgstr ""
+msgstr "In esaurimento"
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr "Visualizza come elenco"
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr "Visualizza come griglia"
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr "Visualizza come struttura ad albero"
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr "Categoria sottoscritta"
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
-msgstr ""
+msgstr "Percorso"
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
-msgstr ""
+msgstr "Modifica ${human_name}"
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
-msgstr ""
+msgstr "Elimina ${human_name}"
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
-msgstr ""
+msgstr "Prezzo Singolo"
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
-msgstr ""
+msgstr "Posizione giacenza principale"
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr "Nuova posizione giacenza"
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr "Inserisci quantità iniziale per questo articolo in giacenza"
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr "Inserire i numeri di serie per la nuova giacenza (o lasciare vuoto)"
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr "Crea nuova allocazione magazzino"
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr "Creato più elementi stock"
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
-msgstr ""
+msgstr "Esporta giacenza"
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
-msgstr ""
+msgstr "Includi sotto allocazioni"
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
-msgstr ""
+msgstr "Includi elementi in giacenza nelle sottoallocazioni"
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
-msgstr ""
+msgstr "Trasferisci giacenza"
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
-msgstr ""
+msgstr "Sposta"
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
-msgstr ""
+msgstr "Conta giacenza"
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
-msgstr ""
+msgstr "Conta"
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
-msgstr ""
+msgstr "Rimuovi giacenza"
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
-msgstr ""
+msgstr "Prendi"
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
-msgstr ""
+msgstr "Aggiungi giacenza"
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
-msgstr ""
+msgstr "Aggiungi"
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
-msgstr ""
+msgstr "Elimina Stock"
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
-msgstr ""
+msgstr "Specificare la quantità di magazzino"
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
-msgstr ""
+msgstr "Devi selezionare almeno un articolo disponibile"
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
-msgstr ""
+msgstr "PASS"
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
-msgstr ""
+msgstr "FAIL"
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
-msgstr ""
+msgstr "NESSUN RISULTATO"
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
-msgstr ""
+msgstr "Aggiungi risultato test"
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
-msgstr ""
+msgstr "Nessun risultato di prova trovato"
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
-msgstr ""
+msgstr "In produzione"
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
-msgstr ""
+msgstr "Installato nell'elemento stock"
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
-msgstr ""
+msgstr "Spedito al cliente"
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
-msgstr ""
+msgstr "Assegnato all'ordine di vendita"
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
-msgstr ""
+msgstr "Nessuna giacenza impostata"
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
-msgstr ""
+msgstr "L'articolo di magazzino è in produzione"
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
-msgstr ""
+msgstr "Articolo stock assegnato al cliente"
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
-msgstr ""
+msgstr "L'articolo stock è scaduto"
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
-msgstr ""
+msgstr "Articolo in giacenza prossimo alla scadenza"
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
-msgstr ""
+msgstr "L'articolo stock è stato allocato"
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
-msgstr ""
+msgstr "L'elemento stock è stato installato in un altro articolo"
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
-msgstr ""
+msgstr "L'articolo stock è stato rifiutato"
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
-msgstr ""
+msgstr "Esaurito"
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
-msgstr ""
+msgstr "Inventario"
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
-msgstr ""
+msgstr "elementi"
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
-msgstr ""
+msgstr "posizione"
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
-msgstr ""
+msgstr "Posizione non definita"
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
-msgstr ""
+msgstr "Data non valida"
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
-msgstr ""
+msgstr "La posizione non esiste più"
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
-msgstr ""
+msgstr "Aggiunto"
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
-msgstr ""
+msgstr "Rimosso"
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
-msgstr ""
+msgstr "Seriale"
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8017,303 +8168,317 @@ msgstr ""
#: templates/js/translated/table_filters.js:64
msgid "Validated"
-msgstr ""
+msgstr "Convalidato"
#: templates/js/translated/table_filters.js:72
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
-msgstr ""
+msgstr "Includi sottoallocazioni/posizioni"
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
-msgstr ""
+msgstr "Includi posizioni"
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
-msgstr ""
+msgstr "Includi sottocategorie"
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr "Sottoscritto"
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
-msgstr ""
+msgstr "Codice Lotto"
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
-msgstr ""
+msgstr "Elementi attivi"
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
-msgstr ""
+msgstr "L'elemento è stato posizionato"
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
-msgstr ""
+msgstr "Includi elementi in giacenza nelle sottoallocazioni"
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
-msgstr ""
+msgstr "Mostra gli elementi che sono in giacenza"
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
-msgstr ""
+msgstr "In Produzione"
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
-msgstr ""
+msgstr "Mostra gli elementi in produzione"
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
-msgstr ""
+msgstr "Includi Varianti"
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
-msgstr ""
+msgstr "Includi gli articoli stock per le varianti degli articoli"
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
-msgstr ""
+msgstr "Installato"
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
-msgstr ""
+msgstr "Mostra gli elementi stock che sono installati in un altro elemento"
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
-msgstr ""
+msgstr "Mostra elementi che sono stati assegnati a un cliente"
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
-msgstr ""
+msgstr "Stato magazzino"
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
-msgstr ""
+msgstr "Ha il prezzo d'acquisto"
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
-msgstr ""
+msgstr "Mostra gli articoli di magazzino che hanno un prezzo di acquisto impostato"
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
-msgstr ""
+msgstr "Mostra gli elementi in giacenza scaduti"
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
-msgstr ""
+msgstr "Mostra giacenza prossima alla scadenza"
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
-msgstr ""
+msgstr "Stato Build"
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
-msgid "Order status"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:296
#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
+msgid "Order status"
+msgstr "Stato dell'ordine"
+
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
-msgstr ""
+msgstr "In Sospeso"
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
-msgstr ""
+msgstr "Includi articoli nelle sottocategorie"
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
-msgstr ""
+msgstr "Ha IPN"
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
-msgstr ""
+msgstr "L'articolo possiede un part number interno"
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
-msgstr ""
+msgstr "Visualizza articoli attivi"
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
-msgstr ""
+msgstr "Disponibilità"
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
-msgstr ""
+msgstr "Acquistabile"
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
-msgstr ""
+msgstr "Caricamento dati"
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
-msgstr ""
+msgstr "righe per pagina"
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
-msgstr ""
+msgstr "Visualizzo"
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
-msgstr ""
+msgstr "a"
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
-msgstr ""
+msgstr "di"
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
-msgstr ""
+msgstr "righe"
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr "Cerca"
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
-msgstr ""
+msgstr "Nessun risultato corrispondente"
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
-msgstr ""
+msgstr "Mostra/nascondi la paginazione"
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
-msgstr ""
+msgstr "Aggiorna"
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
-msgstr ""
+msgstr "Attiva/disattiva"
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
-msgstr ""
+msgstr "Colonne"
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
-msgstr ""
+msgstr "Tutti"
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
-msgstr ""
+msgstr "Acquista"
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
-msgstr ""
+msgstr "Vendi"
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
-msgstr ""
+msgstr "Admin"
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
-msgstr ""
+msgstr "Esci"
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr "Accedi"
+
+#: templates/navbar.html:111
msgid "About InvenTree"
-msgstr ""
+msgstr "Informazioni Su InvenTree"
+
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr "Modalità demo InvenTree"
#: templates/qr_code.html:11
msgid "QR data not provided"
-msgstr ""
+msgstr "Dati QR non forniti"
#: templates/registration/logged_out.html:6
msgid "You were logged out successfully."
-msgstr ""
+msgstr "Sei stato disconnesso con successo."
#: templates/registration/logged_out.html:8
msgid "Log in again"
-msgstr ""
+msgstr "Accedi di nuovo"
+
+#: templates/stats.html:9
+msgid "Server"
+msgstr "Server"
#: templates/stats.html:13
msgid "Instance Name"
-msgstr ""
+msgstr "Nome istanza"
#: templates/stats.html:18
msgid "Database"
-msgstr ""
+msgstr "Database"
#: templates/stats.html:26
msgid "Server is running in debug mode"
-msgstr ""
+msgstr "Server in esecuzione in modalità debug"
#: templates/stats.html:33
msgid "Docker Mode"
-msgstr ""
+msgstr "Modalità Docker"
#: templates/stats.html:34
msgid "Server is deployed using docker"
-msgstr ""
+msgstr "Il server è distribuito utilizzando docker"
#: templates/stats.html:40
msgid "Server status"
-msgstr ""
+msgstr "Stato del Server"
#: templates/stats.html:43
msgid "Healthy"
-msgstr ""
+msgstr "Healthy"
#: templates/stats.html:45
msgid "Issues detected"
-msgstr ""
+msgstr "Problemi rilevati"
#: templates/stats.html:52
msgid "Background Worker"
@@ -8321,133 +8486,129 @@ msgstr ""
#: templates/stats.html:55
msgid "Background worker not running"
-msgstr ""
+msgstr "Processo in background non in esecuzione"
#: templates/stats.html:63
msgid "Email Settings"
-msgstr ""
+msgstr "Email Settings"
#: templates/stats.html:66
msgid "Email settings not configured"
-msgstr ""
+msgstr "Impostazioni dell'email non configurate"
#: templates/stock_table.html:14
msgid "Export Stock Information"
-msgstr ""
+msgstr "Esporta Informazioni Di Giacenza"
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
-msgstr ""
+msgstr "Azioni Barcode"
+
+#: templates/stock_table.html:36
+msgid "Print test reports"
+msgstr "Stampa report di prova"
#: templates/stock_table.html:43
-msgid "Print test reports"
-msgstr ""
+msgid "Stock Options"
+msgstr "Opzioni Magazzino"
+
+#: templates/stock_table.html:48
+msgid "Add to selected stock items"
+msgstr "Aggiungi alle voci stock selezionate"
+
+#: templates/stock_table.html:49
+msgid "Remove from selected stock items"
+msgstr "Rimuovi dagli elementi stock selezionati"
#: templates/stock_table.html:50
-msgid "Stock Options"
-msgstr ""
+msgid "Stocktake selected stock items"
+msgstr "Inventario articoli di magazzino selezionati"
-#: templates/stock_table.html:55
-msgid "Add to selected stock items"
-msgstr ""
+#: templates/stock_table.html:51
+msgid "Move selected stock items"
+msgstr "Sposta gli elementi stock selezionati"
+
+#: templates/stock_table.html:51
+msgid "Move stock"
+msgstr "Sposta giacenza"
+
+#: templates/stock_table.html:52
+msgid "Order selected items"
+msgstr "Ordina articolo selezionato"
+
+#: templates/stock_table.html:53
+msgid "Change status"
+msgstr "Modifica stato"
+
+#: templates/stock_table.html:53
+msgid "Change stock status"
+msgstr "Modifica stato stock"
#: templates/stock_table.html:56
-msgid "Remove from selected stock items"
-msgstr ""
-
-#: templates/stock_table.html:57
-msgid "Stocktake selected stock items"
-msgstr ""
-
-#: templates/stock_table.html:58
-msgid "Move selected stock items"
-msgstr ""
-
-#: templates/stock_table.html:58
-msgid "Move stock"
-msgstr ""
-
-#: templates/stock_table.html:59
-msgid "Order selected items"
-msgstr ""
-
-#: templates/stock_table.html:60
-msgid "Change status"
-msgstr ""
-
-#: templates/stock_table.html:60
-msgid "Change stock status"
-msgstr ""
-
-#: templates/stock_table.html:63
msgid "Delete selected items"
-msgstr ""
+msgstr "Elimina articoli selezionati"
#: templates/yesnolabel.html:4
msgid "Yes"
-msgstr ""
+msgstr "Si"
#: templates/yesnolabel.html:6
msgid "No"
-msgstr ""
+msgstr "No"
#: users/admin.py:64
msgid "Users"
-msgstr ""
+msgstr "Utenti"
#: users/admin.py:65
msgid "Select which users are assigned to this group"
-msgstr ""
+msgstr "Selezionare quali utenti sono assegnati a questo gruppo"
#: users/admin.py:187
msgid "The following users are members of multiple groups:"
-msgstr ""
+msgstr "Gli utenti seguenti sono membri di più gruppi:"
#: users/admin.py:210
msgid "Personal info"
-msgstr ""
+msgstr "Informazioni personali"
#: users/admin.py:211
msgid "Permissions"
-msgstr ""
+msgstr "Permessi"
#: users/admin.py:214
msgid "Important dates"
-msgstr ""
+msgstr "Date Importanti"
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
-msgstr ""
-
-#: users/models.py:190
-msgid "Group"
-msgstr ""
-
-#: users/models.py:193
-msgid "View"
-msgstr ""
-
-#: users/models.py:193
-msgid "Permission to view items"
-msgstr ""
+msgstr "Impostazione autorizzazioni"
#: users/models.py:195
+msgid "Group"
+msgstr "Gruppo"
+
+#: users/models.py:198
+msgid "View"
+msgstr "Visualizza"
+
+#: users/models.py:198
+msgid "Permission to view items"
+msgstr "Autorizzazione a visualizzare gli articoli"
+
+#: users/models.py:200
msgid "Permission to add items"
-msgstr ""
+msgstr "Autorizzazione ad aggiungere elementi"
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
-msgstr ""
+msgstr "Modificare"
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
-msgstr ""
+msgstr "Permessi per modificare gli elementi"
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
-msgstr ""
+msgstr "Autorizzazione ad eliminare gli elementi"
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.mo b/InvenTree/locale/ja/LC_MESSAGES/django.mo
index c8fe740f6a..d9e09fe1ee 100644
Binary files a/InvenTree/locale/ja/LC_MESSAGES/django.mo and b/InvenTree/locale/ja/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/ja/LC_MESSAGES/django.po b/InvenTree/locale/ja/LC_MESSAGES/django.po
index e8eaefdd41..31263b2096 100644
--- a/InvenTree/locale/ja/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ja/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Japanese\n"
"Language: ja_JP\n"
@@ -33,260 +33,268 @@ msgstr "一致するアクションが見つかりませんでした"
msgid "Enter date"
msgstr "日付を入力する"
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr "確認"
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr "削除の確認"
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr "削除の確認"
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr "パスワードを入力してください"
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr "新しいパスワードを入力してください。"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr "パスワードの確認"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr "新しいパスワードの確認"
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr "カテゴリの選択"
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr "数量コードが無効です"
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr "シリアル番号は空です"
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "無効なグループ: {g}"
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "重複シリアル: {g}"
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr "シリアル番号が見つかりません"
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr "添付ファイル"
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr "添付ファイルを選択"
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr "コメント:"
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr "ファイルコメント"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr "ユーザー"
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr "アップロード日時"
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr "無効な選択です"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr "お名前"
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr "説明"
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr "説明 (オプション)"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr "親"
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr "有効な数字でなければなりません"
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr "ドイツ語"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr "英語"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr "フランス語"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr "ポーランド語"
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr "トルコ語"
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr ""
@@ -302,196 +310,196 @@ msgstr "メールアドレスが未設定です"
msgid "InvenTree system health checks failed"
msgstr "InvenTree システムのヘルスチェックに失敗しました"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr "処理待ち"
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr "設置済"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr "完了"
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr "キャンセル済"
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr "紛失"
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr "返品済"
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr "発送済み"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr "注意が必要です"
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr "破損"
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr "却下済み"
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -535,599 +543,574 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr ""
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr ""
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr ""
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr ""
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr ""
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr ""
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr ""
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr "完了したパーツの場所"
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr ""
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr ""
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr ""
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr ""
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr "パーツ"
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr ""
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr ""
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr ""
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr ""
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr ""
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr ""
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr ""
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr ""
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr ""
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr ""
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr ""
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr "パーツを割り当てるためにビルドする"
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr ""
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr ""
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr ""
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
+#: build/tasks.py:92
+msgid "Stock required for build order"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
msgstr ""
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
msgstr ""
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr ""
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr ""
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr "注文必須パーツ"
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr "パーツの注文"
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr "テンプレート"
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr "パーツはデフォルトのテンプレートです"
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr "アセンブリ"
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr "パーツはデフォルトで他のコンポーネントから組み立てることができます"
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr "コンポーネント"
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr "パーツはデフォルトでサブコンポーネントとして使用できます"
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr "購入可能"
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr "パーツはデフォルトで購入可能です"
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr "パーツはデフォルトで販売可能です"
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr "追跡可能"
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr "パーツはデフォルトで追跡可能です"
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr ""
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr ""
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr ""
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2348,7 +2280,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
@@ -2376,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2385,8 +2317,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr "メーカー・パーツ"
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,46 +2466,42 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr "サプライヤー・パーツ"
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr "新しいサプライヤー・パーツを作成"
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr "新しいサプライヤー・パーツ"
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr "パーツの注文"
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr "パーツを削除"
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr "パーツを削除"
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr "メーカー・パーツ"
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr "新しいメーカー・パーツを作成"
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr "新しいメーカ―・パーツ"
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "パーツの注文"
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr "メーカー・パーツの編集"
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr "メーカー・パーツを削除"
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr "メーカー・パーツの詳細"
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr "内部パーツ"
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr "メーカー・パーツの在庫"
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr "メーカー・パーツの注文"
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2965,20 +2885,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr "パーツ"
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr "パーツ"
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
-msgstr "全てのパーツ"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
+msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr "新規パーツ"
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr "メーカー・パーツの編集"
msgid "Delete Manufacturer Part"
msgstr "メーカー・パーツを削除"
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.mo b/InvenTree/locale/ko/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..84270c1185
Binary files /dev/null and b/InvenTree/locale/ko/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/ko/LC_MESSAGES/django.po b/InvenTree/locale/ko/LC_MESSAGES/django.po
index e1b5611439..faaab622b5 100644
--- a/InvenTree/locale/ko/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ko/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Korean\n"
"Language: ko_KR\n"
@@ -33,260 +33,268 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr ""
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr ""
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr ""
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr ""
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr ""
@@ -302,196 +310,196 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -535,599 +543,574 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr ""
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr ""
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr ""
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr ""
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr ""
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr ""
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr ""
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr ""
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr ""
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr ""
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr ""
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr ""
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr ""
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr ""
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr ""
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr ""
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr ""
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr ""
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr ""
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr ""
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr ""
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr ""
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr ""
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr ""
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr ""
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr ""
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr ""
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
+#: build/tasks.py:92
+msgid "Stock required for build order"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
msgstr ""
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
msgstr ""
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr ""
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr ""
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr ""
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr ""
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr ""
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2348,7 +2280,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
@@ -2376,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2385,8 +2317,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,46 +2466,42 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2965,20 +2885,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.mo b/InvenTree/locale/nl/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..90bb7bf5b8
Binary files /dev/null and b/InvenTree/locale/nl/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/nl/LC_MESSAGES/django.po b/InvenTree/locale/nl/LC_MESSAGES/django.po
index 78a85dfaa1..84d60370b5 100644
--- a/InvenTree/locale/nl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/nl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Dutch\n"
"Language: nl_NL\n"
@@ -33,260 +33,268 @@ msgstr "Geen overeenkomende actie gevonden"
msgid "Enter date"
msgstr "Voer datum in"
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr "Bevestigen"
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr "Bevestigen verwijdering"
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr "Bevestig item verwijdering"
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr "Voer wachtwoord in"
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr "Voer een nieuw wachtwoord in"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr "Wachtwoord bevestigen"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr "Nieuw wachtwoord bevestigen"
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr "Categorie selecteren"
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Dubbel serienummer: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr "Ongeldige hoeveeldheid ingevoerd"
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr "Leeg serienummer"
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ongeldige groep: {g}"
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Dubbel serienummer: {g}"
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr "Geen serienummers gevonden"
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Aantal unieke serienummer ({s}) moet overeenkomen met de hoeveelheid ({q})"
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr "Bijlage"
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr "Bestand als bijlage selecteren"
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr "Opmerking"
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr "Bijlage opmerking"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr "Gebruiker"
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr "uploaddatum"
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr "Bestandsnaam mag niet leeg zijn"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr "Fout bijlagemap"
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Bestandsnaam bevat illegale teken '{c}'"
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr "Bestandsnaam mist extensie"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr "Bijlage met deze bestandsnaam bestaat al"
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr "Fout bij hernoemen bestand"
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr "Ongeldige keuze"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr "Naam"
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr "Omschrijving"
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr "Omschrijving (optioneel)"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr "overkoepelend"
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr "Moet een geldig nummer zijn"
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr "Bestandsnaam"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr "Duits"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr "Grieks"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr "Engels"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr "Spaans"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr "Frans"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr "Hebreeuws"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr "Italiaans"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr "Japans"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr "Koreaans"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr "Nederlands"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr "Noors"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr "Pools"
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr "Russisch"
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr "Zweeds"
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr "Thais"
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr "Turks"
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr "Vietnamees"
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr "Chinees"
@@ -302,196 +310,196 @@ msgstr "E-mailbackend niet geconfigureerd"
msgid "InvenTree system health checks failed"
msgstr "Inventree gezondsheidscheck faalt"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr "Bezig"
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr "Geplaatst"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr "Voltooid"
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr "Geannuleerd"
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr "Kwijt"
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr "Retour"
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr "Verzonden"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr "Aandacht nodig"
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr "Beschadigd"
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr "Verwoest"
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr "Afgewezen"
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr "Verouderde trackingscode"
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr "Voorraaditem gemaakt"
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr "Bewerken voorraaditem"
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr "Serienummer toegewezen"
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr "Voorraad geteld"
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr "Voorraad handmatig toegevoegd"
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr "Voorraad handmatig verwijderd"
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr "Locatie veranderd"
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr "Gemonteerd"
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr "Gedemonteerd"
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr "Gemonteerd item"
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr "Gedemonteerd item"
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr "Splits van bovenliggend item"
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr "Splits onderliggende item"
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr "Naar klant verzonden"
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr "Geretourneerd door klant"
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr "Montageopdracht gecreëerd"
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr "Montageopdracht voltooid"
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr "Ontvangen tegen inkoopopdracht"
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr "Productie"
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr "Foute valutacode"
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr "Foute letter in onderdeelnaam"
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN moet overeenkomen met regex-patroon {pat}"
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "Refernetie moet overeenkomen met patroon {pattern}"
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Illegale letter in naam ({x})"
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr "Overschrijdingswaarde mag niet negatief zijn"
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr "Verwijder item"
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr "Selectievakje aanvinken om de verwijdering van items te bevestigen"
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr "Gebruikersgegevens bewerken"
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr "Wachtwoord instellen"
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr "Wachtwoordvelden komen niet overeen"
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr "Systeeminformatie"
@@ -535,599 +543,574 @@ msgstr "Barcode komt al overeen met StockItem object"
msgid "Barcode associated with StockItem"
msgstr "Barcode gekoppeld aan StockItem"
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr "Bouwopdracht referentie"
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr "Order streefdatum"
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr "Streefdatum"
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr "Aantal"
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr "Aantal items om te maken"
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr "Voer hoeveelheid in voor build-output"
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr "Serienummers"
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr "Voer serienummers in voor build-outputs"
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr "Bevestig het maken van build-output"
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr "Bevestig verwijdering van build-output"
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr "Bevestig het ongedaan maken van de toewijzing van voorraad"
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr "Markeer build als voltooid"
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr "Locatie"
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr "Locatie van voltooide onderdelen"
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr "Status"
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr "Build output voorraad status"
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr "Bevestig onvolledigheid"
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr "Bevestig voltooiing met onvolledige voorraadtoewijzing"
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr "Bevestig build voltooiing"
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr "Annuleren bevestigen"
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Bevestig annulering van de build"
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr "Ongeldige keuze voor bovenliggende build"
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr "Bouwopdracht"
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr "Bouwopdrachten"
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr "Bouwopdracht referentie"
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr "Referentie"
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr "Korte beschrijving van de build"
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Bovenliggende bouw"
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr "BuildOrder waaraan deze build is toegewezen"
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr "Onderdeel"
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr "Selecteer onderdeel om te bouwen"
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr "Verkoop Order Referentie"
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr "Verkooporder waaraan deze build is toegewezen"
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr "Bron Locatie"
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Selecteer de locatie waar de voorraad van de build vandaan moet komen (laat leeg om vanaf elke standaard locatie te nemen)"
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr "Bestemmings Locatie"
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr "Selecteer locatie waar de voltooide items zullen worden opgeslagen"
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr "Bouwkwaliteit"
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr "Voltooide voorraadartikelen"
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr "Aantal voorraadartikelen die zijn voltooid"
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr "Bouwstatus"
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr "Bouwstatuscode"
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr "Aanmaakdatum"
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr "Verwachte voltooiingsdatum"
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr "Voltooiingsdatum"
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr "voltooid door"
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr "Gebruiker die bouwopdracht heeft gegeven"
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr "Verantwoordelijke"
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr "Gebruiker verantwoordelijk voor deze bouwopdracht"
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr "Externe Link"
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr "Link naar externe URL"
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr "Opmerkingen"
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr "Opmerkingen over de bouw"
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr "Geen bouwuitvoer opgegeven"
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr "Bouwuitvoer is al voltooid"
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr "Bouwuitvoer komt niet overeen met bouwopdracht"
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr "Product"
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr "Bouw om onderdelen toe te wijzen"
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr "Voorraadartikel"
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr "Bron voorraadartikel"
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr "Voorraad hoeveelheid te alloceren aan bouw"
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr "Installeren in"
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr "Bestemming voorraadartikel"
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr "Locatie"
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr "Status"
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
-msgstr "Serienummer"
+#: build/tasks.py:92
+msgid "Stock required for build order"
+msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr "Afdruk acties"
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr "Build acties"
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr "Bewerk Build"
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr "Annuleer Build"
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr "Verwijder bouw"
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr "Voltooi Build"
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr "Deze bouwopdracht is toegewezen aan verkooporder %(link)s"
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr "Deze bouwopdracht is een onderdeel van bouwopdracht %(link)s"
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr "Bouwopdracht is gereed om te markeren als voltooid"
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr "Bouwopdracht kan niet worden voltooid omdat openstaande outputs blijven"
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr "Vereiste bouwhoeveelheid is nog niet bereikt"
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr "Voorraad is niet volledig toegewezen aan deze bouwopdracht"
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
-msgstr "Beheerder weergave"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
+msgstr "Streefdatum"
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr "Achterstallig"
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr "Afdruk acties"
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr "Print Bouw Order"
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr "Voltooi Build"
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr "Build acties"
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr "Bewerk Build"
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr "Annuleer Build"
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr "Verwijder bouw"
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr "Build details"
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr "Deze bouw was verwacht op %(target)s"
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
-msgstr "Voortgang"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
+msgstr "Achterstallig"
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr "Verkoop Order"
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr "Uitgegeven door"
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr "Onvolledige bouwuitvoer"
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr "Bouwopdracht kan niet worden voltooid omdat onvolledige bouwuitvoer blijft bestaan"
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
-msgstr ""
+#: build/templates/build/detail.html:16
+msgid "Build Details"
+msgstr "Build details"
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr "Voorraadbron"
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr "Batch"
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr "Gecreëerd"
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr "Geen doeldatum ingesteld"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr "Niet toegewezen voorraad"
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr "Niet toegewezen voorraad"
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr "Bestel onderdelen"
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr "Bijlagen"
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr "Bouw notities"
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr "Notities Bewerken"
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr "Instellingssleutel (moet uniek zijn - hoofdletter ongevoelig"
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr "Waarde van de instelling"
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr "Moet een geheel getal zijn"
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr "Waarde moet een booleaanse waarde zijn"
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr "Waarde moet een geheel getal zijn"
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr "Sleutelreeks moet uniek zijn"
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr "Inventree Instantie Naam"
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr "String-beschrijving voor de server instantie"
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr "Gebruik de instantie naam"
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr "Gebruik de naam van de instantie in de titelbalk"
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Bedrijfsnaam"
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr "Interne bedrijfsnaam"
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr "Basis URL"
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr "Basis URL voor serverinstantie"
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr "Standaard valuta"
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr "Standaard valuta"
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr "Download van URL"
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr "Download van afbeeldingen en bestanden vanaf een externe URL toestaan"
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr "Barcode ondersteuning"
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr "Barcodescanner ondersteuning inschakelen"
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr "IPN Regex"
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr "Reguliere expressiepatroon voor het corresponderen van deel IPN"
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr "Dubbele IPN toestaan"
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr "Toestaan dat meerdere onderdelen dezelfde IPN gebruiken"
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr "Bewerken IPN toestaan"
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr "Sta het wijzigen van de IPN toe tijdens het bewerken van een onderdeel"
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr "Interne prijzen"
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr "Foutopsporingsmodus"
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr "Paginagrootte"
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr "Testrapport"
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr "Verlopen voorraad"
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr "Verlopen voorraad functionaliteit inschakelen"
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr "Verkoop verlopen voorraad"
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr "Verkoop verlopen voorraad toestaan"
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr "dagen"
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2348,7 +2280,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
@@ -2376,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2385,8 +2317,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,46 +2466,42 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2965,20 +2885,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr "Standaard locatie"
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr "Standaard locatie voor onderdelen in deze categorie"
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr "U heeft geen toestemming om de stuklijst te bewerken."
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr "Nieuw stuklijstitem"
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr "Bewerk stuklijst"
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr "Toewijzingen verkoopopdracht"
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr "Nieuw stuklijstitem"
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr "Toewijzingen bouwopdracht"
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr "QR-code weergeven"
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr "Label afdrukken"
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr "Voorraad acties"
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr "Serienummer"
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Voorraadlocatie"
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr "Scan naar locatie"
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr "Voorraad tellen"
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr "Voorraad overzetten"
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr "Geen Locatie ingesteld"
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlocatie kan niet worden bewerkt."
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr "Alle voorraadartikelen"
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr "Maak nieuwe voorraadlocatie"
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr "Locatie acties"
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr "Bewerk locatie"
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr "Verwijder locatie"
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
-msgstr "Locatiegegevens"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
+msgstr "Maak nieuwe voorraadlocatie"
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
+msgstr "Nieuwe locatie"
+
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
-msgstr "Locatieomschrijving"
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr "U staat niet in de lijst van eigenaars van deze locatie. Deze voorraadlocatie kan niet worden bewerkt."
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr "Sublocaties"
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr "Voorraadgegevens"
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr "Voorraadlocaties"
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr "Afdrukacties"
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr "Labels afdrukken"
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr "Nieuwe locatie"
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr "Maak nieuwe locatie"
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
-msgstr ""
-
-#: stock/templates/stock/navbar.html:14
-msgid "History"
-msgstr ""
-
-#: stock/templates/stock/navbar.html:30
-msgid "Installed Items"
-msgstr ""
-
-#: stock/templates/stock/navbar.html:38
-msgid "Child Items"
-msgstr ""
-
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
#: stock/templates/stock/stock_app_base.html:16
msgid "Loading..."
msgstr ""
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr "Bewerk voorraadlocatie"
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr "QR-code voor voorraadlocatie"
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr "Specificeer een geldige locatie"
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr "Maak nieuwe voorraadlocatie"
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr "Verwijder voorraadlocatie"
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr "Bevestig de voorraadtoewijzing"
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr "Geen voorraadlocatie ingesteld"
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr "Inkoop"
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr "Verkoop"
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.mo b/InvenTree/locale/no/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..f4261a805f
Binary files /dev/null and b/InvenTree/locale/no/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/no/LC_MESSAGES/django.po b/InvenTree/locale/no/LC_MESSAGES/django.po
index 4d8661bf32..2a8d5785ec 100644
--- a/InvenTree/locale/no/LC_MESSAGES/django.po
+++ b/InvenTree/locale/no/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:28\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Norwegian\n"
"Language: no_NO\n"
@@ -33,260 +33,268 @@ msgstr "Ingen samsvarende handling funnet"
msgid "Enter date"
msgstr "Oppgi dato"
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr "Bekreft"
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr "Bekreft sletting"
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr "Oppgi passord"
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr "Oppgi nytt passord"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr "Bekreft passord"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr "Bekreft nytt passord"
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr "Velg kategori"
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Dupliser serie: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr "Ugyldig mengde oppgitt"
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr "Tom serienummerstreng"
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ugyldig gruppe: {g}"
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Dupliser serie: {g}"
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr "Ingen serienummer funnet"
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Antall unike serienummer ({s}) må samsvare mengde ({q})"
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr "Vedlegg"
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr "Velg fil å legge ved"
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr "Kommenter"
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr "Kommentar til fil"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr "Bruker"
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr "opplastet dato"
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr "Ugyldig valg"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr "Navn"
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr "Beskrivelse"
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr "Beskrivelse (valgfritt)"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr "Nummer må være gyldig"
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr "Tysk"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr "Gresk"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr "Engelsk"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr "Spansk"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr "Fransk"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr "Hebraisk"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr "Italiensk"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr "Japansk"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr "Koreansk"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr "Nederlandsk"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr "Norsk"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr "Polsk"
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr "Russisk"
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr "Svensk"
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr "Thailandsk"
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr "Tyrkisk"
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr "Vietnamesisk"
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr "Kinesisk"
@@ -302,196 +310,196 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -535,599 +543,574 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr ""
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr ""
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr ""
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr ""
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr ""
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr ""
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr ""
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr ""
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr ""
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr ""
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr ""
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr ""
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr ""
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr ""
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr ""
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr ""
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr ""
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr ""
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr ""
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr ""
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr ""
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr ""
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr ""
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr ""
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr ""
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr ""
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr ""
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
+#: build/tasks.py:92
+msgid "Stock required for build order"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
msgstr ""
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
msgstr ""
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr ""
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr ""
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr ""
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr ""
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr ""
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2348,7 +2280,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
@@ -2376,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2385,8 +2317,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,46 +2466,42 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2965,20 +2885,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.mo b/InvenTree/locale/pl/LC_MESSAGES/django.mo
index 89d5c273e3..b76b641e43 100644
Binary files a/InvenTree/locale/pl/LC_MESSAGES/django.mo and b/InvenTree/locale/pl/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/pl/LC_MESSAGES/django.po b/InvenTree/locale/pl/LC_MESSAGES/django.po
index e76b836ff9..5a2e275036 100644
--- a/InvenTree/locale/pl/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pl/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Polish\n"
"Language: pl_PL\n"
@@ -33,260 +33,268 @@ msgstr "Nie znaleziono pasującej akcji"
msgid "Enter date"
msgstr "Wprowadź dane"
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr "Potwierdź"
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr "Potwierdź usunięcie"
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr "Potwierdź usuwanie elementu"
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr "Wprowadź hasło"
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr "Wprowadź nowe hasło"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr "Potwierdź hasło"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr "Potwierdź nowe hasło"
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr "Wybierz kategorię"
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Powtórzony numer seryjny: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr "Podano nieprawidłową ilość"
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr "Pusty ciąg numeru seryjnego"
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Nieprawidłowa grupa: {g}"
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Powtórzony numer seryjny: {g}"
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr "Nie znaleziono numerów seryjnych"
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Ilość numerów seryjnych ({s}) musi odpowiadać ilości ({q})"
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr "Załącznik"
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr "Wybierz plik do załączenia"
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr "Komentarz"
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr "Komentarz pliku"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr "Użytkownik"
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr "data przesłania"
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr "Błędny wybór"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr "Nazwa"
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr "Opis"
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr "Opis (opcjonalny)"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr "nadrzędny"
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr "Numer musi być prawidłowy"
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr "Niemiecki"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr "Grecki"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr "Angielski"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr "Hiszpański"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr "Francuski"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr "Hebrajski"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr "Włoski"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr "Japoński"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr "Koreański"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr "Holenderski"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr "Norweski"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr "Polski"
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr "Rosyjski"
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr "Szwedzki"
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr "Tajski"
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr "Turecki"
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr "Wietnamski"
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr "Chiński"
@@ -302,196 +310,196 @@ msgstr "Nie skonfigurowano backendu e-mail"
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr "W toku"
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr "Umieszczony"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr "Zakończono"
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr "Anulowano"
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr "Zagubiono"
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr "Zwrócone"
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr "Wysłane"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr "Wymaga uwagi"
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr "Uszkodzone"
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr "Zniszczone"
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr "Odrzucone"
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr "Utworzono element magazynowy"
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr "Przypisano numer seryjny"
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr "Zapas policzony"
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr "Zapas dodany ręcznie"
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr "Zapas usunięty ręcznie"
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr "Lokalizacja zmieniona"
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr "Podziel element podrzędny"
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr "Wyślij do klienta"
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr "Zwrócony od klienta"
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr "Produkcja"
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr "Nieprawidłowy kod waluty"
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr "Błędny znak w nazwie elementu"
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN musi być zgodny z wyrażeniem regularnym {pat}"
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Niedozwolony znak w nazwie ({x})"
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr "Usuń element"
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr "Zaznacz pole aby potwierdzić usunięcie elementu"
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr "Edytuj informacje użytkownika"
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr "Ustaw hasło"
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr "Hasła muszą być zgodne"
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr "Informacja systemowa"
@@ -535,599 +543,574 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr "Numer Zlecenia Budowy"
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr "Data docelowa"
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr "Ilość"
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr "Numer seryjny"
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr ""
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr "Potwierdź brak alokacji zapasów"
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr "Oznacz budowę jako ukończoną"
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr "Lokalizacja"
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr "Lokalizacja ukończonych części"
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr "Status"
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr "Potwierdź nieukończone"
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr "Na pewno anulować?"
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr "Zlecenie Budowy"
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr "Zlecenia budowy"
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr "Odwołanie do zamówienia wykonania"
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr "Referencja"
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr "Krótki opis budowy"
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Budowa nadrzędna"
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr "Zamówienie budowy, do którego budowa jest przypisana"
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr "Część"
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr "Wybierz część do budowy"
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr "Odwołanie do zamówienia sprzedaży"
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr "Zamówienie sprzedaży, do którego budowa jest przypisana"
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr "Lokalizacja źródła"
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Wybierz lokalizację, z której pobrać element do budowy (pozostaw puste, aby wziąć z dowolnej lokalizacji)"
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr "Lokalizacja docelowa"
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr "Wybierz lokalizację, w której będą przechowywane ukończone elementy"
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr "Ilość do stworzenia"
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr "Ilość przedmiotów do zbudowania"
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr "Ukończone elementy"
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr "Ilość produktów magazynowych które zostały ukończone"
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr "Status budowania"
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr "Kod statusu budowania"
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr "Kod partii"
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr "Kod partii dla wyjścia budowy"
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr "Data utworzenia"
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr "Docelowy termin zakończenia"
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr "Data zakończenia"
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr "zrealizowane przez"
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr "Wydany przez"
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr "Użytkownik, który wydał to zamówienie"
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr "Odpowiedzialny"
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr "Użytkownik odpowiedzialny za to zamówienie budowy"
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr "Link Zewnętrzny"
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr "Link do zewnętrznego adresu URL"
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr "Uwagi"
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr "Dodatkowe notatki do budowy"
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr "Nie określono danych wyjściowych budowy"
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr "Budowanie wyjścia jest już ukończone"
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr "Alokowana ilość musi być większa niż zero"
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr "Budowa"
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr "Element magazynowy"
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr "Lokalizacja magazynowania przedmiotu"
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr "Zainstaluj do"
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr "Docelowa lokalizacja magazynowa przedmiotu"
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr "Ilość musi być większa niż zero"
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr "Lokalizacja"
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr "Status"
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr "Ilość musi być większa niż zero"
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
-msgstr "Numer Seryjny"
+#: build/tasks.py:92
+msgid "Stock required for build order"
+msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr "Akcje drukowania"
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr "Edytuj Budowę"
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr "Anuluj Budowę"
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
-msgstr "Widok administratora"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
+msgstr "Data docelowa"
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr "Zaległe"
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr "Akcje drukowania"
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr "Wydrukuj Numer Zlecenia Budowy"
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr "Edytuj Budowę"
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr "Anuluj Budowę"
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr "Szczegóły budowy"
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
-msgstr "Postęp"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
+msgstr "Zaległe"
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr "Zakończone"
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr "Zamówienie zakupu"
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr "Dodane przez"
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
-msgstr ""
+#: build/templates/build/detail.html:16
+msgid "Build Details"
+msgstr "Szczegóły budowy"
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr "Źródło magazynu"
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr "Przeznaczenie"
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr "Nie określono lokalizacji docelowej"
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr "Partia"
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr "Utworzony"
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr "Zakończone"
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr "Budowa niezakończona"
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr "Przydziel zapasy do budowy"
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr "Przydziel zapasy do budowy"
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr "Przydziel zapasy"
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr "Cofnij przydział zapasów"
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr "Cofnij przydział zapasów"
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr "Przydziel zapasy do budowy"
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr "Przydziel zapasy"
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr "Zamów wymagane komponenty"
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr "Zamów części"
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
-msgstr "Utwórz nowe wyjście"
-
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
+msgstr ""
+
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr "Załączniki"
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr "Notatki tworzenia"
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr "Dodaj załącznik"
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr "Edytuj załącznik"
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr "Usuń załącznik"
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr "Nowe zlecenie budowy"
@@ -1396,45 +1362,28 @@ msgstr "Nowe zlecenie budowy"
msgid "Print Build Orders"
msgstr "Wydrukuj zlecenia budowy"
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr "Pokaż widok kalendarza"
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr "Pokaż widok listy"
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
-msgstr "Szczegóły zlecenia budowy"
-
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
-msgstr "Szczegóły"
-
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
msgstr ""
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr "Budowy podrzędne"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr "Notatki zlecenia budowy"
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr "Czy na pewno chcesz cofnąć przydział wszystkich zapasów dla tej budowy?"
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr "Utwórz zlecenie budowy"
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr "Numer seryjny już istnieje"
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr "Ustawienia wartości"
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr "Nazwa instancji InvenTree"
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Nazwa firmy"
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr "Bazowy URL"
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr "Bazowy adres URL dla instancji serwera"
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr "Pobierz z adresu URL"
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr "Zezwól na pobieranie zewnętrznych obrazów i plików z zewnętrznego URL"
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr "Obsługa kodu kreskowego"
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr "Włącz obsługę skanera kodów"
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr "Wyrażenie regularne IPN"
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr "Zezwól na powtarzający się IPN"
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr "Zezwól na edycję IPN"
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr "Skopiuj BOM komponentu"
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr "Szablon"
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr "Złożenie"
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr "Komponent"
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr "Możliwość zakupu"
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr "Części są domyślnie z możliwością zakupu"
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr "Możliwość sprzedaży"
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr "Części są domyślnie z możliwością sprzedaży"
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr "Możliwość śledzenia"
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr "Części są domyślnie z możliwością śledzenia"
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Wirtualny"
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr "Części są domyślnie wirtualne"
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr "Tryb Debugowania"
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr "Rozmiar strony"
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr "Raporty testów"
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr "Włącz generowanie raportów testów"
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr "dni"
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr "Grupuj według komponentu"
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr "Pokaż ilość w formularzach"
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr "Cena"
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr "Domyślny"
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr "Aktualna wartość"
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr "Zmień ustawienie"
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr "Wyślij plik"
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr "Opis firmy"
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr "Strona WWW"
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr "Numer telefonu kontaktowego"
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr "Adres E-Mail"
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr "Punkt kontaktowy"
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr "Łącze"
@@ -2348,7 +2280,7 @@ msgstr "Łącze"
msgid "Link to external company information"
msgstr "Link do informacji o zewnętrznym przedsiębiorstwie"
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr "Obraz"
@@ -2376,8 +2308,8 @@ msgstr "jest producentem"
msgid "Does this company manufacture parts?"
msgstr "Czy to przedsiębiorstwo produkuje części?"
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr "Waluta"
@@ -2385,8 +2317,8 @@ msgstr "Waluta"
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr "Część bazowa"
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr "Wybierz część"
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr "Producent"
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr "Wybierz producenta"
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr "MPN"
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr "Numer producenta"
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr "Część producenta"
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr "Jednostki"
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr "Dostawca"
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr "Wybierz dostawcę"
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr "SKU"
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Uwaga"
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr "koszt podstawowy"
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr "Opakowanie"
@@ -2525,7 +2458,7 @@ msgstr "Opakowanie"
msgid "Part packaging"
msgstr "Opakowanie części"
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr "wielokrotność"
@@ -2533,46 +2466,42 @@ msgstr "wielokrotność"
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr "Firma"
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr "Prześlij nowy obraz"
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr "Prześlij nowy obraz"
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr "Telefon"
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr "Klient"
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr "Komponenty dostawcy"
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr "Utwórz nowego dostawcę części"
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr "Nowy dostawca części"
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr "Opcje"
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr "Zamów części"
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr "Usuń części"
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr "Usuń części"
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr "Części producenta"
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr "Utwórz nową część producenta"
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr "Nowa część producenta"
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr "Zapasy dostawcy"
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr "Lista dostawców"
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr "Producenci"
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Zamów część"
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr "Edytuj część producenta"
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr "Usuń cześć producenta"
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr "Szczegóły części producenta"
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr "Część wewnętrzna"
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr "Dostawcy"
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr "Usuń"
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr "Parametry"
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr "Dodaj parametr"
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr "Stan"
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr "Zamówienia"
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
-msgstr "Dostarczone części"
+msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr "Informacja cenowa"
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr "Edytuj przedział cenowy"
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr "Edytuj przedział cenowy"
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr "Stan"
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr "Zamówienia"
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr "Cennik"
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr "Nowy dostawca"
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr "Producenci"
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr "Now producent"
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr "Klienci"
@@ -2965,20 +2885,20 @@ msgstr "Firmy"
msgid "New Company"
msgstr "Nowa firma"
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr "Pobierz obraz"
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr "Nazwa etykiety"
msgid "Label description"
msgstr "Opis etykiety"
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr "Etykieta"
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr "Złóż zamówienie"
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr "Oznacz zamówienie jako zakończone"
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr "Anuluj zamówienie"
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr "Wyślij zamówienie"
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr "Wprowadź ilość produktów magazynowych"
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr "Opis Zamówienia"
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr "Link do zewnętrznej witryny"
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr "Utworzony przez"
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr "Użytkownik lub grupa odpowiedzialna za to zamówienie"
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr "Notatki do zamówienia"
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr "Odniesienie zamówienia"
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr "Status zamówienia zakupu"
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr "odebrane przez"
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr "Data wydania"
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr "Data wystawienia zamówienia"
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr "Data Dostawy Towaru"
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr "Wartość musi być liczbą całkowitą"
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr "Wartość musi być liczbą dodatnią"
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr "Data wysyłki"
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr "wysłane przez"
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr "Ilość elementów"
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr "Zamówienie"
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr "Zlecenie zakupu"
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr "Odebrane"
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr "Cena zakupu"
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr "Cena zakupu jednostkowego"
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr "Gdzie kupujący chce przechowywać ten przedmiot?"
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "Cena sprzedaży"
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr "Jednostkowa cena sprzedaży"
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Zarezerwowana ilość nie może przekraczać ilości na stanie"
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr "Linia"
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr "Komponent"
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr "Jesteś pewien, że chcesz usunąć ten załącznik?"
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr "Eksportuj zamówienie do pliku"
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr "Szczegóły zamówienia"
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr "Numer zamówienia"
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr "Status zamówienia"
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr "Wydany"
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr "Przedmioty"
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr "Szczegóły zamówienia"
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr "Szczegóły"
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr "Otrzymane elementy"
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr "Dodaj element zamówienia"
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr "Notatki zamówień"
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr "Wyślij zamówienie"
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr "Ostrzeżenie"
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr "Anuluj zamówienie"
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr "Wyślij zamówienie"
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr "Części"
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr "Domyślna lokalizacja"
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr "Dostępna ilość"
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr "Część nadrzędna"
@@ -3893,463 +3805,465 @@ msgstr "potwierdź"
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr "Powiązane części"
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr "Wybierz kategorię części"
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr "Domyślne słowa kluczowe"
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr "Części"
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr "Nazwa części"
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr "Wariant"
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr "Opis części"
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr "Słowa kluczowe"
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr "Kategoria"
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr "IPN"
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr "Wersja"
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr "Minimalny stan magazynowy"
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr "Czy ta część może być zbudowana z innych części?"
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr "Czy ta część może być użyta do budowy innych części?"
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr "Aktywny"
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr "Czy ta część jest aktywna?"
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr "Sprzedaj wiele"
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr "Nazwa testu"
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr "Wymagane"
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr "Dane"
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr "Wartość domyślna"
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr "Podczęść"
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr "Suma kontrolna"
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr "Część 1"
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr "Część 2"
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr "Wybierz powiązaną część"
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr "Nie masz uprawnień do edycji BOM."
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
-msgstr "Importuj dane BOM"
-
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr "Kopiuj BOM z części nadrzędnej"
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr "Zakończ edycję"
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
-msgstr "Wszystkie części"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
+msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
-msgstr "Stwórz nową kategorię komponentów"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
+msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
+msgstr "Stwórz nową kategorię komponentów"
+
+#: part/templates/part/category.html:58
+msgid "New Category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr "Eksportuj"
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr "Nowy komponent"
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr "Ustaw kategorię"
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr "Ustaw kategorię"
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr "Eksportuj dane"
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr "Parametry części"
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr "Duplikuj część"
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr "Ostatni numer seryjny"
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr "Zapasy części"
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr "Warianty Części"
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr "Utwórz nowy wariant"
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr "Nowy wariant"
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr "Dodaj powiązane"
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr "Zestawienie materiałowe"
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr "Kopiuj BOM"
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr "Powiązane części"
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr "Dodaj powiązaną część"
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr "Użyte w"
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr "Ceny"
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr "Lista części"
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr "Część jest wirtualna (nie fizyczna)"
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr "Nieaktywny"
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr "Akcje kodów kreskowych"
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr "Pokaż Kod QR"
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr "Drukuj etykietę"
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr "Akcje magazynowe"
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr "Duplikuj część"
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr "Edytuj część"
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr "Usuń część"
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr "Część jest wirtualna (nie fizyczna)"
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr "Nieaktywny"
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr "Ostatni numer seryjny"
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr "Dodaj powiązaną część"
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr "Edytuj kategorię części"
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr "Numer Seryjny"
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr "Wynik"
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr "Data"
@@ -5294,516 +5237,538 @@ msgstr "Zaliczone"
msgid "Fail"
msgstr "Niezaliczone"
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr "Data ważności"
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr "Numery seryjne"
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr "Część podstawowa"
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr "Ilość w magazynie"
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr "Ilość musi być liczbą całkowitą"
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr "Termin minął"
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr "Termin minął"
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr "Lokacje nie są ustawione"
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr "Skaner kodów"
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr "Ostatnia aktualizacja"
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr "Ostatnia inwentaryzacja"
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr "Zapisz"
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr "Edytuj lokację"
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
+msgstr "Nowa lokalizacja"
+
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr "Drukuj etykiety"
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr "Nowa lokalizacja"
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr "Czy na pewno chcesz skasować tą lokację?"
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
-msgstr "Historia"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr "Utwórz nową lokalizację magazynową"
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr "Ilość nie może być ujemna"
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr "Indeks"
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr "Dostępne"
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr "Błąd 403: Odmowa dostępu"
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr "Nie masz uprawnień wymaganych do dostępu do tej funkcji"
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
-msgstr "Dostępne"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
+msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr "Akcje"
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr "Ilość za"
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr "Przydzielono"
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr "Potwierdź przydział zapasów"
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr "Dodaj część producenta"
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr "Edytuj firmę"
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr "Dodaj nową firmę"
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr "Dodaj nowy filtr"
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr "Kod zamówienia"
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr "Odbierz"
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr "Cena zakupu"
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr "Oblicz cenę"
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr "Zaktualizuj cenę jednostkową"
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr "Kopiuj BOM"
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr "Cena jednostkowa"
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr "Dodaj stan"
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr "Dodaj"
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr "Dodano"
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr "Uprawnienia"
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr "Uprawnienia nadane"
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr "Uprawnienie do wyświetlania przedmiotów"
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr "Uprawnienie do dodawania przedmiotów"
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr "Uprawnienie do edycji przedmiotów"
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr "Uprawnienie do usuwania przedmiotów"
diff --git a/InvenTree/locale/pt/LC_MESSAGES/django.po b/InvenTree/locale/pt/LC_MESSAGES/django.po
index 487219d34c..2b69dcc2ba 100644
--- a/InvenTree/locale/pt/LC_MESSAGES/django.po
+++ b/InvenTree/locale/pt/LC_MESSAGES/django.po
@@ -1,22 +1,21 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR , YEAR.
-#
-#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
+"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-11-13 22:45+1100\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME \n"
-"Language-Team: LANGUAGE \n"
-"Language: \n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
+"Last-Translator: \n"
+"Language-Team: Portuguese\n"
+"Language: pt_PT\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Crowdin-Project: inventree\n"
+"X-Crowdin-Project-ID: 452300\n"
+"X-Crowdin-Language: pt-PT\n"
+"X-Crowdin-File: /[inventree.InvenTree] l10/InvenTree/locale/en/LC_MESSAGES/django.po\n"
+"X-Crowdin-File-ID: 138\n"
#: InvenTree/api.py:64
msgid "API endpoint not found"
@@ -115,7 +114,7 @@ msgstr ""
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:109 stock/models.py:1875
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr ""
@@ -131,9 +130,9 @@ msgstr ""
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1170
-#: common/models.py:1171 part/models.py:2219 part/models.py:2239
-#: report/templates/report/inventree_test_report_base.html:96
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
+#: report/templates/report/inventree_test_report_base.html:91
#: templates/js/translated/stock.js:2054
msgid "User"
msgstr ""
@@ -172,10 +171,11 @@ msgid "Invalid choice"
msgstr ""
#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
-#: label/models.py:112 part/models.py:741 part/models.py:2403
+#: label/models.py:112 part/models.py:741 part/models.py:2389
#: part/templates/part/detail.html:25 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:497
-#: templates/js/translated/part.js:634 templates/js/translated/part.js:1271
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr ""
@@ -186,18 +186,19 @@ msgstr ""
#: company/templates/company/supplier_part.html:81 label/models.py:119
#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
-#: report/models.py:553 report/models.py:592
+#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:213
-#: templates/js/translated/bom.js:425 templates/js/translated/build.js:1621
-#: templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:673
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
-#: templates/js/translated/part.js:556 templates/js/translated/part.js:744
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1290
-#: templates/js/translated/part.js:1359 templates/js/translated/stock.js:1121
-#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr ""
@@ -209,7 +210,7 @@ msgstr ""
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:62 part/models.py:2688
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr ""
@@ -217,79 +218,83 @@ msgstr ""
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:654
+#: InvenTree/settings.py:664
msgid "German"
msgstr ""
-#: InvenTree/settings.py:655
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:656
+#: InvenTree/settings.py:666
msgid "English"
msgstr ""
-#: InvenTree/settings.py:657
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:658
-msgid "French"
-msgstr ""
-
-#: InvenTree/settings.py:659
-msgid "Hebrew"
-msgstr ""
-
-#: InvenTree/settings.py:660
-msgid "Italian"
-msgstr ""
-
-#: InvenTree/settings.py:661
-msgid "Japanese"
-msgstr ""
-
-#: InvenTree/settings.py:662
-msgid "Korean"
-msgstr ""
-
-#: InvenTree/settings.py:663
-msgid "Dutch"
-msgstr ""
-
-#: InvenTree/settings.py:664
-msgid "Norwegian"
-msgstr ""
-
-#: InvenTree/settings.py:665
-msgid "Polish"
-msgstr ""
-
-#: InvenTree/settings.py:666
-msgid "Portugese"
-msgstr ""
-
-#: InvenTree/settings.py:667
-msgid "Russian"
-msgstr ""
-
#: InvenTree/settings.py:668
-msgid "Swedish"
+msgid "Spanish (Mexican)"
msgstr ""
#: InvenTree/settings.py:669
-msgid "Thai"
+msgid "French"
msgstr ""
#: InvenTree/settings.py:670
-msgid "Turkish"
+msgid "Hebrew"
msgstr ""
#: InvenTree/settings.py:671
-msgid "Vietnamese"
+msgid "Italian"
msgstr ""
#: InvenTree/settings.py:672
+msgid "Japanese"
+msgstr ""
+
+#: InvenTree/settings.py:673
+msgid "Korean"
+msgstr ""
+
+#: InvenTree/settings.py:674
+msgid "Dutch"
+msgstr ""
+
+#: InvenTree/settings.py:675
+msgid "Norwegian"
+msgstr ""
+
+#: InvenTree/settings.py:676
+msgid "Polish"
+msgstr ""
+
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
+msgid "Russian"
+msgstr ""
+
+#: InvenTree/settings.py:679
+msgid "Swedish"
+msgstr ""
+
+#: InvenTree/settings.py:680
+msgid "Thai"
+msgstr ""
+
+#: InvenTree/settings.py:681
+msgid "Turkish"
+msgstr ""
+
+#: InvenTree/settings.py:682
+msgid "Vietnamese"
+msgstr ""
+
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr ""
@@ -414,7 +419,7 @@ msgstr ""
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:190
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr ""
@@ -482,11 +487,11 @@ msgstr ""
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:15
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:19
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr ""
@@ -494,7 +499,7 @@ msgstr ""
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:863 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -540,23 +545,22 @@ msgstr ""
#: build/forms.py:36 build/models.py:1283
#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:35 common/models.py:1210
+#: build/templates/build/detail.html:35 common/models.py:1225
#: company/forms.py:42 company/templates/company/supplier_part.html:251
#: order/forms.py:102 order/models.py:729 order/models.py:991
#: order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:237
-#: part/forms.py:253 part/forms.py:269 part/models.py:2590
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:1128 part/templates/part/detail.html:1214
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
-#: report/templates/report/inventree_test_report_base.html:81
-#: report/templates/report/inventree_test_report_base.html:139
-#: stock/forms.py:156 stock/serializers.py:275
+#: report/templates/report/inventree_test_report_base.html:77
+#: stock/forms.py:156 stock/serializers.py:286
#: stock/templates/stock/item_base.html:256
-#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:440
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
@@ -564,8 +568,8 @@ msgstr ""
#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1502 templates/js/translated/part.js:1625
-#: templates/js/translated/part.js:1703 templates/js/translated/stock.js:347
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr ""
@@ -575,7 +579,7 @@ msgid "Enter quantity for build output"
msgstr ""
#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
-#: stock/serializers.py:296 templates/js/translated/stock.js:194
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr ""
@@ -618,8 +622,10 @@ msgstr ""
#: build/models.py:138 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:42
-#: templates/InvenTree/index.html:221 templates/InvenTree/search.html:145
-#: users/models.py:44
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr ""
@@ -628,11 +634,11 @@ msgid "Build Order Reference"
msgstr ""
#: build/models.py:199 order/models.py:249 order/models.py:556
-#: order/models.py:736 part/models.py:2599
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:432 templates/js/translated/build.js:1119
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr ""
@@ -654,9 +660,9 @@ msgstr ""
#: build/templates/build/detail.html:30 company/models.py:705
#: order/models.py:789 order/models.py:860
#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
-#: part/models.py:2165 part/models.py:2181 part/models.py:2200
-#: part/models.py:2217 part/models.py:2319 part/models.py:2441
-#: part/models.py:2574 part/models.py:2881 part/templates/part/detail.html:336
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
@@ -666,15 +672,15 @@ msgstr ""
#: templates/InvenTree/search.html:86
#: templates/email/build_order_required_stock.html:17
#: templates/email/low_stock_notification.html:16
-#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:212
-#: templates/js/translated/bom.js:390 templates/js/translated/build.js:620
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
-#: templates/js/translated/build.js:1626 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:426
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
-#: templates/js/translated/part.js:725 templates/js/translated/part.js:891
-#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078
-#: templates/js/translated/stock.js:2129
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr ""
@@ -730,7 +736,7 @@ msgstr ""
msgid "Build status code"
msgstr ""
-#: build/models.py:285 stock/models.py:545
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
@@ -784,25 +790,32 @@ msgstr ""
#: build/models.py:329 build/templates/build/detail.html:102
#: company/templates/company/manufacturer_part.html:87
#: company/templates/company/supplier_part.html:88
-#: part/templates/part/detail.html:80 stock/models.py:539
+#: part/templates/part/detail.html:80 stock/models.py:538
#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr ""
-#: build/models.py:330 part/models.py:798 stock/models.py:541
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr ""
-#: build/models.py:334 build/serializers.py:200 company/models.py:142
-#: company/models.py:577 order/models.py:183 order/models.py:738
-#: part/models.py:925 part/templates/part/detail.html:223
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
+#: order/templates/order/po_navbar.html:41
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:611
-#: stock/models.py:1775 stock/models.py:1881 stock/serializers.py:314
-#: stock/serializers.py:573 templates/js/translated/barcode.js:58
-#: templates/js/translated/bom.js:596 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:963 templates/js/translated/order.js:1561
-#: templates/js/translated/stock.js:861 templates/js/translated/stock.js:1340
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr ""
@@ -849,7 +862,7 @@ msgstr ""
#: build/models.py:1253 stock/templates/stock/item_base.html:318
#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
-#: templates/navbar.html:32
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
@@ -857,7 +870,7 @@ msgstr ""
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1270 build/serializers.py:327
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
#: stock/templates/stock/item_base.html:16
#: stock/templates/stock/item_base.html:340
@@ -884,46 +897,46 @@ msgstr ""
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:136 build/serializers.py:356
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
-#: build/serializers.py:145
+#: build/serializers.py:146
msgid "Build output does not match the parent build"
msgstr ""
-#: build/serializers.py:149
+#: build/serializers.py:150
msgid "Output part does not match BuildOrder part"
msgstr ""
-#: build/serializers.py:153
+#: build/serializers.py:154
msgid "This build output has already been completed"
msgstr ""
-#: build/serializers.py:157
+#: build/serializers.py:158
msgid "This build output is not fully allocated"
msgstr ""
-#: build/serializers.py:189 order/serializers.py:216 order/serializers.py:284
-#: stock/forms.py:236 stock/serializers.py:307 stock/serializers.py:675
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
#: stock/templates/stock/item_base.html:286
#: templates/js/translated/barcode.js:384
#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
-#: templates/js/translated/order.js:1282 templates/js/translated/part.js:180
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
#: templates/js/translated/stock.js:1931
msgid "Location"
msgstr ""
-#: build/serializers.py:190
+#: build/serializers.py:191
msgid "Location for completed build outputs"
msgstr ""
-#: build/serializers.py:196 build/templates/build/build_base.html:129
+#: build/serializers.py:197 build/templates/build/build_base.html:129
#: build/templates/build/detail.html:63 order/models.py:572
-#: order/serializers.py:237 stock/templates/stock/item_base.html:409
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
@@ -931,50 +944,50 @@ msgstr ""
msgid "Status"
msgstr ""
-#: build/serializers.py:212
+#: build/serializers.py:213
msgid "A list of build outputs must be provided"
msgstr ""
-#: build/serializers.py:258 build/serializers.py:307 part/models.py:2714
-#: part/models.py:2873
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
msgid "BOM Item"
msgstr ""
-#: build/serializers.py:268
+#: build/serializers.py:269
msgid "Build output"
msgstr ""
-#: build/serializers.py:277
+#: build/serializers.py:278
msgid "Build output must point to the same build"
msgstr ""
-#: build/serializers.py:318
+#: build/serializers.py:319
msgid "bom_item.part must point to the same part as the build order"
msgstr ""
-#: build/serializers.py:333
+#: build/serializers.py:334
msgid "Item must be in stock"
msgstr ""
-#: build/serializers.py:347 order/models.py:316 order/serializers.py:230
-#: stock/models.py:382 stock/models.py:1104 stock/serializers.py:287
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
msgid "Quantity must be greater than zero"
msgstr ""
-#: build/serializers.py:389
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:395
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:402
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:430
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
@@ -1062,16 +1075,16 @@ msgstr ""
#: order/templates/order/order_base.html:102
#: order/templates/order/sales_order_base.html:78
#: order/templates/order/sales_order_base.html:107
-#: templates/js/translated/table_filters.js:276
-#: templates/js/translated/table_filters.js:304
-#: templates/js/translated/table_filters.js:321
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
msgid "Overdue"
msgstr ""
#: build/templates/build/build_base.html:150
#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
#: templates/js/translated/build.js:1641
-#: templates/js/translated/table_filters.js:286
+#: templates/js/translated/table_filters.js:304
msgid "Completed"
msgstr ""
@@ -1173,8 +1186,8 @@ msgstr ""
#: build/templates/build/detail.html:81
#: stock/templates/stock/item_base.html:304
#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
-#: templates/js/translated/table_filters.js:133
-#: templates/js/translated/table_filters.js:215
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
@@ -1193,7 +1206,7 @@ msgstr ""
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:158
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
@@ -1213,7 +1226,7 @@ msgstr ""
msgid "Allocate stock to build"
msgstr ""
-#: build/templates/build/detail.html:181
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
msgid "Allocate Stock"
msgstr ""
@@ -1272,10 +1285,14 @@ msgstr ""
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:278
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
#: order/templates/order/purchase_order_detail.html:60
#: order/templates/order/sales_order_detail.html:52
-#: part/templates/part/detail.html:300 stock/templates/stock/item.html:95
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr ""
@@ -1296,32 +1313,36 @@ msgid "Edit Notes"
msgstr ""
#: build/templates/build/detail.html:448
+#: order/templates/order/po_attachments.html:79
#: order/templates/order/purchase_order_detail.html:170
#: order/templates/order/sales_order_detail.html:160
-#: part/templates/part/detail.html:1075 stock/templates/stock/item.html:270
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
#: build/templates/build/detail.html:467
+#: order/templates/order/po_attachments.html:51
#: order/templates/order/purchase_order_detail.html:142
#: order/templates/order/sales_order_detail.html:133
-#: part/templates/part/detail.html:1029 stock/templates/stock/item.html:238
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
#: build/templates/build/detail.html:474
+#: order/templates/order/po_attachments.html:58
#: order/templates/order/purchase_order_detail.html:149
#: order/templates/order/sales_order_detail.html:139
-#: part/templates/part/detail.html:1038 stock/templates/stock/item.html:247
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
#: build/templates/build/detail.html:475
+#: order/templates/order/po_attachments.html:59
#: order/templates/order/purchase_order_detail.html:150
#: order/templates/order/sales_order_detail.html:140
-#: part/templates/part/detail.html:1039 stock/templates/stock/item.html:248
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
@@ -1333,7 +1354,7 @@ msgstr ""
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/index.html:18 part/templates/part/detail.html:435
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1353,6 +1374,18 @@ msgstr ""
msgid "Display list view"
msgstr ""
+#: build/templates/build/sidebar.html:5
+msgid "Build Order Details"
+msgstr ""
+
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
+
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
+
#: build/views.py:76
msgid "Build was cancelled"
msgstr ""
@@ -1365,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/serializers.py:345 stock/views.py:1290
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1450,703 +1483,706 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:338 common/models.py:955 common/models.py:1163
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:340
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:375
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:380
+#: common/models.py:382
msgid "Chosen value is not a valid option"
msgstr ""
-#: common/models.py:403
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:414
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:437
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:544
+#: common/models.py:559
msgid "No group"
msgstr ""
-#: common/models.py:586
+#: common/models.py:601
msgid "Restart required"
msgstr ""
-#: common/models.py:587
+#: common/models.py:602
msgid "A setting has been changed which requires a server restart"
msgstr ""
-#: common/models.py:594
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:596
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:600
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:601
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:607 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:608
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:613
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:614
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:620
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:621
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:627
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:628
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:634
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:635
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:641
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:642
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:646
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:647
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:653
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:654
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:660
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:661
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:667
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:668
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:674
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:675
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:681
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:682
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:688 part/models.py:2443 report/models.py:187
+#: common/models.py:703 part/models.py:2429 report/models.py:187
#: templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:689
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:695 part/models.py:888
-#: templates/js/translated/table_filters.js:150
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:696
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:702 part/models.py:894
-#: templates/js/translated/table_filters.js:371
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:703
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:709 part/models.py:905
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:710
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:716 part/models.py:910
-#: templates/js/translated/table_filters.js:379
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:717
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:723 part/models.py:900
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:724
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:730 part/models.py:920
+#: common/models.py:745 part/models.py:920
#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:731
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:737
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:738
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:744
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:745
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:756
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:757
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:763
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:764
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:770
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:771
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:777
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:778
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:784
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:785
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:791
+#: common/models.py:806
msgid "Part Name Display Format"
msgstr ""
-#: common/models.py:792
+#: common/models.py:807
msgid "Format to display the part name"
msgstr ""
-#: common/models.py:799
+#: common/models.py:814
msgid "Enable Reports"
msgstr ""
-#: common/models.py:800
+#: common/models.py:815
msgid "Enable generation of reports"
msgstr ""
-#: common/models.py:806 templates/stats.html:25
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:807
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:813
+#: common/models.py:828
msgid "Page Size"
msgstr ""
-#: common/models.py:814
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:824
+#: common/models.py:839
msgid "Test Reports"
msgstr ""
-#: common/models.py:825
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:831
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:832
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:838
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:839
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:845
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:846
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:848
+#: common/models.py:863
msgid "days"
msgstr ""
-#: common/models.py:853
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:854
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:860
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:861
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:867
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:868
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:874
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:875
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:880
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:881
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:885
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:886
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:891
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:892
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:898
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:899
+#: common/models.py:914
msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:904
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:905
+#: common/models.py:920
msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:910
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:911
+#: common/models.py:926
msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:916
+#: common/models.py:931
msgid "Email required"
msgstr ""
-#: common/models.py:917
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:922
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:923
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:928
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:929
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:934
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:935
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:940
+#: common/models.py:955
msgid "Group on signup"
msgstr ""
-#: common/models.py:941
+#: common/models.py:956
msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:986
+#: common/models.py:1001
msgid "Show subscribed parts"
msgstr ""
-#: common/models.py:987
+#: common/models.py:1002
msgid "Show subscribed parts on the homepage"
msgstr ""
-#: common/models.py:992
+#: common/models.py:1007
msgid "Show subscribed categories"
msgstr ""
-#: common/models.py:993
+#: common/models.py:1008
msgid "Show subscribed part categories on the homepage"
msgstr ""
-#: common/models.py:998
+#: common/models.py:1013
msgid "Show latest parts"
msgstr ""
-#: common/models.py:999
+#: common/models.py:1014
msgid "Show latest parts on the homepage"
msgstr ""
-#: common/models.py:1004
+#: common/models.py:1019
msgid "Recent Part Count"
msgstr ""
-#: common/models.py:1005
+#: common/models.py:1020
msgid "Number of recent parts to display on index page"
msgstr ""
-#: common/models.py:1011
+#: common/models.py:1026
msgid "Show unvalidated BOMs"
msgstr ""
-#: common/models.py:1012
+#: common/models.py:1027
msgid "Show BOMs that await validation on the homepage"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1032
msgid "Show recent stock changes"
msgstr ""
-#: common/models.py:1018
+#: common/models.py:1033
msgid "Show recently changed stock items on the homepage"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1038
msgid "Recent Stock Count"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1039
msgid "Number of recent stock items to display on index page"
msgstr ""
-#: common/models.py:1029
+#: common/models.py:1044
msgid "Show low stock"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1045
msgid "Show low stock items on the homepage"
msgstr ""
-#: common/models.py:1035
+#: common/models.py:1050
msgid "Show depleted stock"
msgstr ""
-#: common/models.py:1036
+#: common/models.py:1051
msgid "Show depleted stock items on the homepage"
msgstr ""
-#: common/models.py:1041
+#: common/models.py:1056
msgid "Show needed stock"
msgstr ""
-#: common/models.py:1042
+#: common/models.py:1057
msgid "Show stock items needed for builds on the homepage"
msgstr ""
-#: common/models.py:1047
+#: common/models.py:1062
msgid "Show expired stock"
msgstr ""
-#: common/models.py:1048
+#: common/models.py:1063
msgid "Show expired stock items on the homepage"
msgstr ""
-#: common/models.py:1053
+#: common/models.py:1068
msgid "Show stale stock"
msgstr ""
-#: common/models.py:1054
+#: common/models.py:1069
msgid "Show stale stock items on the homepage"
msgstr ""
-#: common/models.py:1059
+#: common/models.py:1074
msgid "Show pending builds"
msgstr ""
-#: common/models.py:1060
+#: common/models.py:1075
msgid "Show pending builds on the homepage"
msgstr ""
-#: common/models.py:1065
+#: common/models.py:1080
msgid "Show overdue builds"
msgstr ""
-#: common/models.py:1066
+#: common/models.py:1081
msgid "Show overdue builds on the homepage"
msgstr ""
-#: common/models.py:1071
+#: common/models.py:1086
msgid "Show outstanding POs"
msgstr ""
-#: common/models.py:1072
+#: common/models.py:1087
msgid "Show outstanding POs on the homepage"
msgstr ""
-#: common/models.py:1077
+#: common/models.py:1092
msgid "Show overdue POs"
msgstr ""
-#: common/models.py:1078
+#: common/models.py:1093
msgid "Show overdue POs on the homepage"
msgstr ""
-#: common/models.py:1083
+#: common/models.py:1098
msgid "Show outstanding SOs"
msgstr ""
-#: common/models.py:1084
+#: common/models.py:1099
msgid "Show outstanding SOs on the homepage"
msgstr ""
-#: common/models.py:1089
+#: common/models.py:1104
msgid "Show overdue SOs"
msgstr ""
-#: common/models.py:1090
+#: common/models.py:1105
msgid "Show overdue SOs on the homepage"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1097
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1103
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1104
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1110
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1111
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1117
+#: common/models.py:1132
msgid "Search Show Stock"
msgstr ""
-#: common/models.py:1118
+#: common/models.py:1133
msgid "Display stock levels in search preview window"
msgstr ""
-#: common/models.py:1124
+#: common/models.py:1139
msgid "Hide Inactive Parts"
msgstr ""
-#: common/models.py:1125
+#: common/models.py:1140
msgid "Hide inactive parts in search preview window"
msgstr ""
-#: common/models.py:1131
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1132
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1138
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1139
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1145
+#: common/models.py:1160
msgid "Fixed Navbar"
msgstr ""
-#: common/models.py:1146
+#: common/models.py:1161
msgid "InvenTree navbar position is fixed to the top of the screen"
msgstr ""
-#: common/models.py:1211 company/forms.py:43
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1218 company/serializers.py:263
+#: common/models.py:1233 company/serializers.py:264
#: company/templates/company/supplier_part.html:256
-#: templates/js/translated/part.js:1507
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1219
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:48
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
+#: order/templates/order/po_navbar.html:19
+#: order/templates/order/po_navbar.html:22
#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:51
-#: part/templates/part/import_wizard/part_upload.html:46 part/views.py:281
-#: part/views.py:923
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:282
-#: part/views.py:924
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
@@ -2164,13 +2200,13 @@ msgstr ""
#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
-#: order/templates/order/order_wizard/po_upload.html:46
+#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
-#: part/templates/part/import_wizard/part_upload.html:44
+#: part/templates/part/import_wizard/part_upload.html:43
msgid "Previous Step"
msgstr ""
@@ -2191,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2216,7 +2252,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
-#: templates/InvenTree/settings/user.html:43
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
@@ -2235,8 +2271,8 @@ msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2272,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:269
-#: company/templates/company/company_base.html:76 stock/serializers.py:161
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2281,7 +2317,7 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:485
+#: company/models.py:320 company/models.py:535 stock/models.py:484
#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2294,25 +2330,25 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:93
#: company/templates/company/supplier_part.html:104
#: stock/templates/stock/item_base.html:353
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:228
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:229
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
#: company/models.py:342 company/templates/company/manufacturer_part.html:97
#: company/templates/company/supplier_part.html:112
-#: templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:852
-#: templates/js/translated/part.js:239
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:240
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2336,9 +2372,9 @@ msgid "Parameter name"
msgstr ""
#: company/models.py:422
-#: report/templates/report/inventree_test_report_base.html:95
-#: stock/models.py:1868 templates/js/translated/company.js:643
-#: templates/js/translated/part.js:643 templates/js/translated/stock.js:848
+#: report/templates/report/inventree_test_report_base.html:90
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2346,9 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:882 part/models.py:2411
-#: part/templates/part/detail.html:59 templates/js/translated/company.js:649
-#: templates/js/translated/part.js:649
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2365,23 +2402,23 @@ msgstr ""
#: order/templates/order/order_base.html:108
#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
#: part/bom.py:247 stock/templates/stock/item_base.html:370
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:660
-#: templates/js/translated/part.js:209
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:210
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
#: company/models.py:551 company/templates/company/supplier_part.html:98
#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
-#: templates/js/translated/part.js:220
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:221
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2398,7 +2435,7 @@ msgid "Supplier part description"
msgstr ""
#: company/models.py:576 company/templates/company/supplier_part.html:126
-#: part/models.py:2602 report/templates/report/inventree_po_report.html:93
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
@@ -2412,8 +2449,8 @@ msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
#: company/models.py:582 company/templates/company/supplier_part.html:119
-#: stock/models.py:508 stock/templates/stock/item_base.html:311
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1336
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2429,17 +2466,17 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:70
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
#: company/templates/company/company_base.html:8
#: company/templates/company/company_base.html:12
-#: templates/InvenTree/search.html:182 templates/js/translated/company.js:321
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
@@ -2476,9 +2513,9 @@ msgid "Phone"
msgstr ""
#: company/templates/company/company_base.html:126 order/models.py:567
-#: order/templates/order/sales_order_base.html:114 stock/models.py:526
-#: stock/models.py:527 stock/templates/stock/item_base.html:263
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
@@ -2488,7 +2525,9 @@ msgstr ""
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:15 templates/InvenTree/search.html:124
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
@@ -2499,7 +2538,7 @@ msgstr ""
#: company/templates/company/detail.html:20
#: company/templates/company/manufacturer_part.html:112
-#: part/templates/part/detail.html:468
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
@@ -2507,8 +2546,8 @@ msgstr ""
#: company/templates/company/detail.html:79
#: company/templates/company/manufacturer_part.html:121
#: company/templates/company/manufacturer_part.html:150
-#: part/templates/part/category.html:160 part/templates/part/detail.html:477
-#: part/templates/part/detail.html:505
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
@@ -2536,7 +2575,7 @@ msgstr ""
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:67 part/templates/part/detail.html:495
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
@@ -2545,11 +2584,14 @@ msgid "Supplier Stock"
msgstr ""
#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
#: order/templates/order/purchase_orders.html:12
-#: part/templates/part/detail.html:171 templates/InvenTree/index.html:252
-#: templates/InvenTree/search.html:203 templates/navbar.html:44
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
@@ -2565,11 +2607,13 @@ msgid "New Purchase Order"
msgstr ""
#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
#: order/templates/order/sales_orders.html:15
-#: part/templates/part/detail.html:194 templates/InvenTree/index.html:283
-#: templates/InvenTree/search.html:223 templates/navbar.html:55
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
@@ -2595,13 +2639,13 @@ msgstr ""
#: company/templates/company/detail.html:383
#: company/templates/company/manufacturer_part.html:209
-#: part/templates/part/detail.html:548
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
#: company/templates/company/detail.html:384
#: company/templates/company/manufacturer_part.html:210
-#: part/templates/part/detail.html:549
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2611,7 +2655,7 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:14 company/views.py:55
#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
-#: templates/navbar.html:43
+#: templates/navbar.html:44
msgid "Manufacturers"
msgstr ""
@@ -2623,12 +2667,12 @@ msgid "Order part"
msgstr ""
#: company/templates/company/manufacturer_part.html:40
-#: templates/js/translated/company.js:561
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
#: company/templates/company/manufacturer_part.html:44
-#: templates/js/translated/company.js:562
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
@@ -2639,27 +2683,29 @@ msgstr ""
#: company/templates/company/manufacturer_part.html:108
#: company/templates/company/supplier_part.html:15 company/views.py:49
-#: part/templates/part/prices.html:163 templates/InvenTree/search.html:194
-#: templates/navbar.html:42
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
#: company/templates/company/manufacturer_part.html:123
-#: part/templates/part/detail.html:479
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
#: company/templates/company/manufacturer_part.html:123
#: company/templates/company/manufacturer_part.html:152
#: company/templates/company/manufacturer_part.html:248
-#: part/templates/part/detail.html:351 part/templates/part/detail.html:479
-#: part/templates/part/detail.html:507 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:204
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
#: company/templates/company/manufacturer_part.html:137
-#: part/templates/part/detail.html:277
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
@@ -2675,7 +2721,7 @@ msgid "Delete parameters"
msgstr ""
#: company/templates/company/manufacturer_part.html:185
-#: part/templates/part/detail.html:989
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
@@ -2687,20 +2733,36 @@ msgstr ""
msgid "Delete Parameters"
msgstr ""
+#: company/templates/company/sidebar.html:6
+msgid "Manufactured Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:10
+msgid "Supplied Parts"
+msgstr ""
+
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
+
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:493
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
#: stock/templates/stock/item_base.html:375
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:1293
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
#: company/templates/company/supplier_part.html:38
-#: templates/js/translated/company.js:859
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
#: company/templates/company/supplier_part.html:42
-#: templates/js/translated/company.js:860
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
@@ -2737,7 +2799,7 @@ msgstr ""
#: company/templates/company/supplier_part.html:184
#: company/templates/company/supplier_part.html:290
-#: part/templates/part/prices.html:271 part/views.py:1782
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
@@ -2745,11 +2807,11 @@ msgstr ""
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:224 part/views.py:1844
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238 part/views.py:1830
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
@@ -2762,12 +2824,15 @@ msgid "Delete price break"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/search.html:156 templates/js/translated/part.js:425
-#: templates/js/translated/part.js:560 templates/js/translated/part.js:785
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:479
-#: templates/js/translated/stock.js:1132 templates/navbar.html:25
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
msgid "Stock"
msgstr ""
@@ -2776,13 +2841,25 @@ msgid "Orders"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
@@ -2792,7 +2869,7 @@ msgid "New Manufacturer"
msgstr ""
#: company/views.py:61 templates/InvenTree/search.html:214
-#: templates/navbar.html:54
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2808,24 +2885,24 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:649
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:681
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:688
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:697
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
-#: label/api.py:57 report/api.py:203
+#: label/api.py:57 report/api.py:201
msgid "No valid objects provided to template"
msgstr ""
@@ -2882,7 +2959,7 @@ msgid "Query filters (comma-separated list of key=value pairs),"
msgstr ""
#: label/models.py:259 label/models.py:319 label/models.py:366
-#: report/models.py:322 report/models.py:459 report/models.py:497
+#: report/models.py:322 report/models.py:457 report/models.py:495
msgid "Filters"
msgstr ""
@@ -3064,8 +3141,8 @@ msgstr ""
msgid "Number of items received"
msgstr ""
-#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:620
-#: stock/serializers.py:152 stock/templates/stock/item_base.html:332
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
@@ -3127,47 +3204,47 @@ msgstr ""
msgid "Enter stock allocation quantity"
msgstr ""
-#: order/serializers.py:166
+#: order/serializers.py:167
msgid "Purchase price currency"
msgstr ""
-#: order/serializers.py:201
+#: order/serializers.py:202
msgid "Line Item"
msgstr ""
-#: order/serializers.py:207
+#: order/serializers.py:208
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:217 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
-#: order/serializers.py:241
+#: order/serializers.py:242
msgid "Barcode Hash"
msgstr ""
-#: order/serializers.py:242
+#: order/serializers.py:243
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:567
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
@@ -3313,19 +3390,19 @@ msgstr ""
msgid "Select Supplier Part"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:16
+#: order/templates/order/order_wizard/po_upload.html:11
msgid "Upload File for Purchase Order"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:24
-#: part/templates/part/bom_upload/upload_file.html:20
+#: order/templates/order/order_wizard/po_upload.html:18
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
-#: part/templates/part/import_wizard/part_upload.html:22
+#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
msgid "Step %(step)s of %(count)s"
msgstr ""
-#: order/templates/order/order_wizard/po_upload.html:54
+#: order/templates/order/order_wizard/po_upload.html:48
msgid "Order is already processed. Files cannot be uploaded."
msgstr ""
@@ -3386,6 +3463,42 @@ msgstr ""
msgid "Select a purchase order for %(name)s"
msgstr ""
+#: order/templates/order/po_attachments.html:12
+#: order/templates/order/po_navbar.html:32
+msgid "Purchase Order Attachments"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:26
+msgid "Received Stock Items"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:29
+#: order/templates/order/po_received_items.html:12
+#: order/templates/order/purchase_order_detail.html:50
+msgid "Received Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
@@ -3405,10 +3518,6 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:50
-msgid "Received Items"
-msgstr ""
-
#: order/templates/order/purchase_order_detail.html:76
#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
@@ -3672,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2441
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3696,23 +3805,19 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:214
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:218
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:238
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
@@ -3728,7 +3833,7 @@ msgstr ""
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:95 part/models.py:2487 part/templates/part/category.html:11
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
@@ -3741,10 +3846,12 @@ msgstr ""
#: part/models.py:358 part/templates/part/cat_link.html:3
#: part/templates/part/category.html:13 part/templates/part/category.html:122
-#: part/templates/part/category.html:142 templates/InvenTree/index.html:85
-#: templates/InvenTree/search.html:88 templates/js/translated/part.js:1303
-#: templates/navbar.html:18 templates/stats.html:80 templates/stats.html:89
-#: users/models.py:41
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
msgid "Parts"
msgstr ""
@@ -3806,10 +3913,10 @@ msgstr ""
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:778 part/models.py:2237 part/models.py:2486
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
#: templates/InvenTree/settings/settings.html:163
-#: templates/js/translated/part.js:927
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
@@ -3818,7 +3925,8 @@ msgid "Part category"
msgstr ""
#: part/models.py:784 part/templates/part/detail.html:45
-#: templates/js/translated/part.js:548
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
@@ -3831,7 +3939,7 @@ msgid "Part revision or version number"
msgstr ""
#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
-#: templates/js/translated/part.js:552
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
@@ -3888,9 +3996,9 @@ msgid "Can this part be sold to customers?"
msgstr ""
#: part/models.py:915 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:350
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
@@ -3930,198 +4038,200 @@ msgstr ""
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2287
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2304
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2324 templates/js/translated/part.js:1354
+#: part/models.py:2310 templates/js/translated/part.js:1467
#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2325
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2330
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2331
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2336 templates/js/translated/part.js:1363
-#: templates/js/translated/table_filters.js:258
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2337
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2342 templates/js/translated/part.js:1371
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2343
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2348 templates/js/translated/part.js:1378
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2349
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2360
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2404
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2411
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2443 part/models.py:2492 part/models.py:2493
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2445
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2445
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2497 templates/InvenTree/settings/settings.html:167
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2498
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2575
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2583
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2584
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2590
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2592 templates/js/translated/bom.js:451
-#: templates/js/translated/bom.js:525
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2592
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2595
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2596
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2599
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2602
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2604
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2604
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2608 templates/js/translated/bom.js:542
-#: templates/js/translated/bom.js:549
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2609
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2614 templates/js/translated/bom.js:534
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2615
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2700 stock/models.py:372
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2709 part/models.py:2711
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2840
+#: part/models.py:2826
msgid "BOM Item Substitute"
msgstr ""
-#: part/models.py:2862
+#: part/models.py:2848
msgid "Substitute part cannot be the same as the master part"
msgstr ""
-#: part/models.py:2874
+#: part/models.py:2860
msgid "Parent BOM item"
msgstr ""
-#: part/models.py:2882
+#: part/models.py:2868
msgid "Substitute part"
msgstr ""
-#: part/models.py:2893
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2897
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2929
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
@@ -4148,7 +4258,7 @@ msgstr ""
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:30 part/templates/part/detail.html:383
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
msgid "BOM actions"
msgstr ""
@@ -4164,23 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:12
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
+msgstr ""
+
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:32
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:35
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4242,6 +4356,7 @@ msgid "Category Description"
msgstr ""
#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
@@ -4261,7 +4376,7 @@ msgstr ""
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:150 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
@@ -4328,7 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:364
+#: part/templates/part/category_sidebar.html:13
+msgid "Import Parts"
+msgstr ""
+
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4401,7 +4520,7 @@ msgstr ""
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:315
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
@@ -4409,112 +4528,120 @@ msgstr ""
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:366
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:371
+#: part/templates/part/detail.html:345
msgid "Export actions"
msgstr ""
-#: part/templates/part/detail.html:375
+#: part/templates/part/detail.html:349
msgid "Export BOM"
msgstr ""
-#: part/templates/part/detail.html:377
+#: part/templates/part/detail.html:351
msgid "Print BOM Report"
msgstr ""
-#: part/templates/part/detail.html:387
+#: part/templates/part/detail.html:361
msgid "Upload BOM"
msgstr ""
-#: part/templates/part/detail.html:389 templates/js/translated/part.js:266
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
msgid "Copy BOM"
msgstr ""
-#: part/templates/part/detail.html:392 part/views.py:820
+#: part/templates/part/detail.html:365 part/views.py:751
msgid "Validate BOM"
msgstr ""
-#: part/templates/part/detail.html:398
+#: part/templates/part/detail.html:370
msgid "New BOM Item"
msgstr ""
-#: part/templates/part/detail.html:399
+#: part/templates/part/detail.html:371
msgid "Add BOM Item"
msgstr ""
-#: part/templates/part/detail.html:412
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:429
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:454
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:464
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:491
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:507
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:692
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:693
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:744
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:882
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:939
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:1091
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1103
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1115
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1204
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
#: part/templates/part/import_wizard/ajax_part_upload.html:29
-#: part/templates/part/import_wizard/part_upload.html:52
+#: part/templates/part/import_wizard/part_upload.html:51
msgid "Unsuffitient privileges."
msgstr ""
-#: part/templates/part/import_wizard/part_upload.html:15
+#: part/templates/part/import_wizard/part_upload.html:14
msgid "Import Parts from File"
msgstr ""
@@ -4612,10 +4739,10 @@ msgid "Part is virtual (not a physical part)"
msgstr ""
#: part/templates/part/part_base.html:136
-#: templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
#: templates/js/translated/model_renderers.js:175
-#: templates/js/translated/part.js:463 templates/js/translated/part.js:540
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
msgid "Inactive"
msgstr ""
@@ -4625,11 +4752,11 @@ msgid "This part is a variant of %(link)s"
msgstr ""
#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
-#: templates/js/translated/table_filters.js:170
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:185 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
@@ -4645,12 +4772,12 @@ msgstr ""
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:563
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:227 templates/js/translated/part.js:792
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
@@ -4685,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:517
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4719,14 +4846,25 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
#: part/templates/part/partial_delete.html:9
#, python-format
-msgid ""
-"Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
+msgid "Part '%(full_name)s' cannot be deleted as it is still marked as active.\n"
"
Disable the \"Active\" part attribute and re-try.\n"
" "
msgstr ""
@@ -4789,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:511
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -4811,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1853
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -4831,9 +4969,9 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:473
-#: templates/js/translated/part.js:427 templates/js/translated/part.js:782
-#: templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
@@ -4850,140 +4988,127 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:95
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:150
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:161
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:211
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:283
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:567
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:626
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:728
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:754
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:757
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:769
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:799
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:841
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:852
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:925
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1261
+#: part/views.py:1192
msgid "Export Bill of Materials"
msgstr ""
-#: part/views.py:1313
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1320
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1329
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1478
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1488
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1495
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1554 templates/js/translated/part.js:309
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1592
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1598
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1607
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1708
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1764
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1786
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1862
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1870
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
-#: report/api.py:234 report/api.py:278
-#, python-brace-format
-msgid "Template file '{filename}' is missing or does not exist"
-msgstr ""
-
#: report/models.py:182
msgid "Template name"
msgstr ""
@@ -5020,51 +5145,51 @@ msgstr ""
msgid "Include test results for stock items installed inside assembled item"
msgstr ""
-#: report/models.py:382
+#: report/models.py:380
msgid "Build Filters"
msgstr ""
-#: report/models.py:383
+#: report/models.py:381
msgid "Build query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:425
+#: report/models.py:423
msgid "Part Filters"
msgstr ""
-#: report/models.py:426
+#: report/models.py:424
msgid "Part query filters (comma-separated list of key=value pairs"
msgstr ""
-#: report/models.py:460
+#: report/models.py:458
msgid "Purchase order query filters"
msgstr ""
-#: report/models.py:498
+#: report/models.py:496
msgid "Sales order query filters"
msgstr ""
-#: report/models.py:548
+#: report/models.py:546
msgid "Snippet"
msgstr ""
-#: report/models.py:549
+#: report/models.py:547
msgid "Report snippet file"
msgstr ""
-#: report/models.py:553
+#: report/models.py:551
msgid "Snippet file description"
msgstr ""
-#: report/models.py:588
+#: report/models.py:586
msgid "Asset"
msgstr ""
-#: report/models.py:589
+#: report/models.py:587
msgid "Report asset file"
msgstr ""
-#: report/models.py:592
+#: report/models.py:590
msgid "Asset file description"
msgstr ""
@@ -5072,17 +5197,12 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:79
-#: stock/models.py:531 stock/templates/stock/item_base.html:238
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
#: templates/js/translated/build.js:1013
#: templates/js/translated/model_renderers.js:95
@@ -5090,47 +5210,38 @@ msgstr ""
msgid "Serial Number"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:88
+#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:93
-#: stock/models.py:1856
+#: report/templates/report/inventree_test_report_base.html:88
+#: stock/models.py:1855
msgid "Test"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:94
-#: stock/models.py:1862
+#: report/templates/report/inventree_test_report_base.html:89
+#: stock/models.py:1861
msgid "Result"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:97
+#: report/templates/report/inventree_test_report_base.html:92
#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:108
+#: report/templates/report/inventree_test_report_base.html:103
msgid "Pass"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:110
+#: report/templates/report/inventree_test_report_base.html:105
msgid "Fail"
msgstr ""
-#: report/templates/report/inventree_test_report_base.html:123
-msgid "Installed Items"
-msgstr ""
-
-#: report/templates/report/inventree_test_report_base.html:137
-#: templates/js/translated/stock.js:2147
-msgid "Serial"
-msgstr ""
-
-#: stock/api.py:418
+#: stock/api.py:422
msgid "Quantity is required"
msgstr ""
-#: stock/forms.py:91 stock/forms.py:265 stock/models.py:588
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
#: stock/templates/stock/item_base.html:382
#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
@@ -5180,241 +5291,241 @@ msgstr ""
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:60 stock/models.py:625
+#: stock/models.py:60 stock/models.py:624
#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:61 stock/models.py:626
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:353
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:389
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:399 stock/models.py:408
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:400
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:422
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:428
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:435
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:477
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:486
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:494
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:499 stock/templates/stock/location.html:12
+#: stock/models.py:498 stock/templates/stock/location.html:12
#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:502
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:509
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:514 stock/templates/stock/item_base.html:271
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:517
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:533
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:547
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:551
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:560
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:562
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:573
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:576
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:582
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:602
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:602
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:612 stock/templates/stock/item.html:111
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:621
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:631
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:632
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1095
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1101
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1107
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1110
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1113
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1120
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1278
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1776
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1833
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1839
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1857
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1863 templates/js/translated/table_filters.js:248
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1869
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1876
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1882
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:155
+#: stock/serializers.py:166
msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:162
+#: stock/serializers.py:173
msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:276
+#: stock/serializers.py:287
msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:291
+#: stock/serializers.py:302
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({q})"
msgstr ""
-#: stock/serializers.py:297
+#: stock/serializers.py:308
msgid "Enter serial numbers for new items"
msgstr ""
-#: stock/serializers.py:308 stock/serializers.py:676
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/serializers.py:315
+#: stock/serializers.py:326
msgid "Optional note field"
msgstr ""
-#: stock/serializers.py:328
+#: stock/serializers.py:339
msgid "Serial numbers cannot be assigned to this part"
msgstr ""
-#: stock/serializers.py:546
+#: stock/serializers.py:557
msgid "StockItem primary key value"
msgstr ""
-#: stock/serializers.py:574
+#: stock/serializers.py:585
msgid "Stock transaction notes"
msgstr ""
-#: stock/serializers.py:584
+#: stock/serializers.py:595
msgid "A list of stock items must be provided"
msgstr ""
@@ -5435,6 +5546,7 @@ msgid "This stock item does not have any child items"
msgstr ""
#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
@@ -5556,13 +5668,13 @@ msgstr ""
#: stock/templates/stock/item_base.html:136
#: stock/templates/stock/item_base.html:386
-#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:247
msgid "Expired"
msgstr ""
#: stock/templates/stock/item_base.html:146
#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/table_filters.js:235
+#: templates/js/translated/table_filters.js:253
msgid "Stale"
msgstr ""
@@ -5744,17 +5856,10 @@ msgstr ""
#: stock/templates/stock/location.html:113
#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:118
-#: stock/templates/stock/location.html:132
-#: stock/templates/stock/location.html:144 templates/InvenTree/search.html:158
-#: templates/js/translated/stock.js:1871 templates/stats.html:93
-#: templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr ""
-
#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
@@ -5776,6 +5881,18 @@ msgstr ""
msgid "Loading..."
msgstr ""
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:12
+msgid "Installed Items"
+msgstr ""
+
+#: stock/templates/stock/stock_sidebar.html:16
+msgid "Child Items"
+msgstr ""
+
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
@@ -6023,6 +6140,7 @@ msgid "Server Settings"
msgstr ""
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
@@ -6046,11 +6164,11 @@ msgstr ""
msgid "Part Parameter Templates"
msgstr ""
-#: templates/InvenTree/settings/po.html:7
+#: templates/InvenTree/settings/po.html:9
msgid "Purchase Order Settings"
msgstr ""
-#: templates/InvenTree/settings/report.html:8
+#: templates/InvenTree/settings/report.html:10
#: templates/InvenTree/settings/user_reports.html:9
msgid "Report Settings"
msgstr ""
@@ -6063,7 +6181,7 @@ msgstr ""
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:89
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
msgid "Settings"
msgstr ""
@@ -6093,6 +6211,59 @@ msgstr ""
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6101,148 +6272,144 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:16
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:18
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:51
+#: templates/InvenTree/settings/user.html:54
msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:75
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:82
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:83
-#: templates/InvenTree/settings/user.html:150
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:90
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:91
+#: templates/InvenTree/settings/user.html:94
msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:98
+#: templates/InvenTree/settings/user.html:101
msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:108
+#: templates/InvenTree/settings/user.html:111
msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:110
+#: templates/InvenTree/settings/user.html:113
msgid "Add Email"
msgstr ""
-#: templates/InvenTree/settings/user.html:120
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:125
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:159
+#: templates/InvenTree/settings/user.html:162
msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:164
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:174
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:183
+#: templates/InvenTree/settings/user.html:186
msgid "Select language"
msgstr ""
-#: templates/InvenTree/settings/user.html:199
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:201
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:208
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:210
+#: templates/InvenTree/settings/user.html:213
msgid "Some languages are not complete"
msgstr ""
-#: templates/InvenTree/settings/user.html:212
+#: templates/InvenTree/settings/user.html:215
msgid "Show only sufficent"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
msgid "Show them too"
msgstr ""
-#: templates/InvenTree/settings/user.html:221
+#: templates/InvenTree/settings/user.html:224
msgid "Help the translation efforts!"
msgstr ""
-#: templates/InvenTree/settings/user.html:222
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:230
+#: templates/InvenTree/settings/user.html:233
msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_display.html:9
-msgid "Display Settings"
-msgstr ""
-
#: templates/InvenTree/settings/user_display.html:25
msgid "Theme Settings"
msgstr ""
@@ -6263,20 +6430,12 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
#: templates/about.html:11 templates/about.html:105
-#: templates/js/translated/bom.js:280 templates/js/translated/modals.js:53
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
#: templates/js/translated/modals.js:964 templates/modals.html:15
#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
@@ -6362,31 +6521,37 @@ msgstr ""
msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:37
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
-msgid ""
-"Please sign in with one\n"
+msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
-msgid ""
-"If you have not created an account yet, then please\n"
+msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:40
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:46
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
@@ -6454,11 +6619,11 @@ msgstr ""
msgid "View in administration panel"
msgstr ""
-#: templates/base.html:94
+#: templates/base.html:96
msgid "Server Restart Required"
msgstr ""
-#: templates/base.html:97
+#: templates/base.html:99
msgid "A configuration option has been changed which requires a server restart"
msgstr ""
@@ -6484,12 +6649,13 @@ msgid "The following parts are low on required stock"
msgstr ""
#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
msgid "Required Quantity"
msgstr ""
#: templates/email/build_order_required_stock.html:19
#: templates/email/low_stock_notification.html:18
-#: templates/js/translated/bom.js:464 templates/js/translated/build.js:1129
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
#: templates/js/translated/build.js:1749
msgid "Available"
msgstr ""
@@ -6536,6 +6702,85 @@ msgstr ""
msgid "Remote image must not exceed maximum allowable file size"
msgstr ""
+#: templates/js/report.js:47 templates/js/translated/report.js:67
+msgid "items selected"
+msgstr ""
+
+#: templates/js/report.js:55 templates/js/translated/report.js:75
+msgid "Select Report Template"
+msgstr ""
+
+#: templates/js/report.js:70 templates/js/translated/report.js:90
+msgid "Select Test Report Template"
+msgstr ""
+
+#: templates/js/report.js:98 templates/js/translated/label.js:29
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
+msgid "Select Stock Items"
+msgstr ""
+
+#: templates/js/report.js:99 templates/js/translated/report.js:119
+msgid "Stock item(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:116 templates/js/report.js:169
+#: templates/js/report.js:223 templates/js/report.js:277
+#: templates/js/report.js:331 templates/js/translated/report.js:136
+#: templates/js/translated/report.js:189 templates/js/translated/report.js:243
+#: templates/js/translated/report.js:297 templates/js/translated/report.js:351
+msgid "No Reports Found"
+msgstr ""
+
+#: templates/js/report.js:117 templates/js/translated/report.js:137
+msgid "No report templates found which match selected stock item(s)"
+msgstr ""
+
+#: templates/js/report.js:152 templates/js/translated/report.js:172
+msgid "Select Builds"
+msgstr ""
+
+#: templates/js/report.js:153 templates/js/translated/report.js:173
+msgid "Build(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:170 templates/js/translated/report.js:190
+msgid "No report templates found which match selected build(s)"
+msgstr ""
+
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
+#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
+msgid "Select Parts"
+msgstr ""
+
+#: templates/js/report.js:206 templates/js/translated/report.js:226
+msgid "Part(s) must be selected before printing reports"
+msgstr ""
+
+#: templates/js/report.js:224 templates/js/translated/report.js:244
+msgid "No report templates found which match selected part(s)"
+msgstr ""
+
+#: templates/js/report.js:259 templates/js/translated/report.js:279
+msgid "Select Purchase Orders"
+msgstr ""
+
+#: templates/js/report.js:260 templates/js/translated/report.js:280
+msgid "Purchase Order(s) must be selected before printing report"
+msgstr ""
+
+#: templates/js/report.js:278 templates/js/report.js:332
+#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
+msgid "No report templates found which match selected orders"
+msgstr ""
+
+#: templates/js/report.js:313 templates/js/translated/report.js:333
+msgid "Select Sales Orders"
+msgstr ""
+
+#: templates/js/report.js:314 templates/js/translated/report.js:334
+msgid "Sales Order(s) must be selected before printing report"
+msgstr ""
+
#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
@@ -6645,7 +6890,7 @@ msgstr ""
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:280 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
@@ -6707,91 +6952,99 @@ msgstr ""
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:183
+#: templates/js/translated/bom.js:184
msgid "Remove substitute part"
msgstr ""
-#: templates/js/translated/bom.js:225
+#: templates/js/translated/bom.js:228
msgid "Select and add a new variant item using the input below"
msgstr ""
-#: templates/js/translated/bom.js:236
+#: templates/js/translated/bom.js:239
msgid "Are you sure you wish to remove this substitute part link?"
msgstr ""
-#: templates/js/translated/bom.js:242
+#: templates/js/translated/bom.js:245
msgid "Remove Substitute Part"
msgstr ""
-#: templates/js/translated/bom.js:281
+#: templates/js/translated/bom.js:284
msgid "Add Substitute"
msgstr ""
-#: templates/js/translated/bom.js:282
+#: templates/js/translated/bom.js:285
msgid "Edit BOM Item Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:401
+#: templates/js/translated/bom.js:404
msgid "Substitutes Available"
msgstr ""
-#: templates/js/translated/bom.js:405 templates/js/translated/build.js:1111
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
msgid "Variant stock allowed"
msgstr ""
-#: templates/js/translated/bom.js:410
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:482
+#: templates/js/translated/bom.js:485
msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:497
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:504
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:553 templates/js/translated/bom.js:642
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:605 templates/js/translated/build.js:1183
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:613
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:615
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:617
+#: templates/js/translated/bom.js:620
msgid "Edit substitute parts"
msgstr ""
-#: templates/js/translated/bom.js:619 templates/js/translated/bom.js:792
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:621 templates/js/translated/bom.js:775
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:714 templates/js/translated/build.js:855
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/bom.js:770
+#: templates/js/translated/bom.js:774
msgid "Are you sure you want to delete this BOM item?"
msgstr ""
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
+msgid "Required Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
#: templates/js/translated/build.js:78
msgid "Edit Build Order"
msgstr ""
@@ -6870,10 +7123,6 @@ msgstr ""
msgid "Remove Allocation"
msgstr ""
-#: templates/js/translated/build.js:1095
-msgid "Required Part"
-msgstr ""
-
#: templates/js/translated/build.js:1107
msgid "Substitute parts available"
msgstr ""
@@ -6903,11 +7152,6 @@ msgstr ""
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:1333 templates/js/translated/label.js:134
-#: templates/js/translated/report.js:225
-msgid "Select Parts"
-msgstr ""
-
#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
@@ -6936,8 +7180,8 @@ msgstr ""
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1593 templates/js/translated/part.js:872
-#: templates/js/translated/part.js:1264 templates/js/translated/stock.js:1064
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
@@ -6962,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -6974,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:90
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:447
-#: templates/js/translated/part.js:532
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:451
-#: templates/js/translated/part.js:536
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:624
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:666
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:667
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:684
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:696
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:412
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:413
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7072,19 +7316,19 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:296
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:299
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:322
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
@@ -7138,11 +7382,6 @@ msgstr ""
msgid "NO"
msgstr ""
-#: templates/js/translated/label.js:29 templates/js/translated/report.js:118
-#: templates/js/translated/stock.js:594
-msgid "Select Stock Items"
-msgstr ""
-
#: templates/js/translated/label.js:30
msgid "Stock item(s) must be selected before printing labels"
msgstr ""
@@ -7364,7 +7603,7 @@ msgid "Total"
msgstr ""
#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
-#: templates/js/translated/part.js:1481 templates/js/translated/part.js:1692
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
@@ -7440,273 +7679,219 @@ msgstr ""
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:50
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:54
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:58
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:62
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:76
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:166
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:174
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:181
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:193
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:202
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:259
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:267
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:275
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:288
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:332
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:401
-msgid "You are subscribed to notifications for this item"
+#: templates/js/translated/part.js:335
+msgid "Part edited"
msgstr ""
#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
msgid "You have subscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:408
+#: templates/js/translated/part.js:410
msgid "Subscribe to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:410
+#: templates/js/translated/part.js:412
msgid "You have unsubscribed to notifications for this item"
msgstr ""
-#: templates/js/translated/part.js:439 templates/js/translated/part.js:524
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:443 templates/js/translated/part.js:528
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:455
+#: templates/js/translated/part.js:457
msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:459
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:574
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:763 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:363
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1027 templates/js/translated/part.js:1199
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
#: templates/js/translated/stock.js:1802
msgid "Display as list"
msgstr ""
-#: templates/js/translated/part.js:1043
+#: templates/js/translated/part.js:1156
msgid "Display as grid"
msgstr ""
-#: templates/js/translated/part.js:1218 templates/js/translated/stock.js:1821
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
msgid "Display as tree"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1395
msgid "Subscribed category"
msgstr ""
-#: templates/js/translated/part.js:1296 templates/js/translated/stock.js:1865
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1340
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1391 templates/js/translated/stock.js:786
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:787
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1398
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1420
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1434
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1459
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1514
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1515
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1616
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1635
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/report.js:67
-msgid "items selected"
-msgstr ""
-
-#: templates/js/translated/report.js:75
-msgid "Select Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:90
-msgid "Select Test Report Template"
-msgstr ""
-
-#: templates/js/translated/report.js:119
-msgid "Stock item(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:136 templates/js/translated/report.js:189
-#: templates/js/translated/report.js:243 templates/js/translated/report.js:297
-#: templates/js/translated/report.js:351
-msgid "No Reports Found"
-msgstr ""
-
-#: templates/js/translated/report.js:137
-msgid "No report templates found which match selected stock item(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:172
-msgid "Select Builds"
-msgstr ""
-
-#: templates/js/translated/report.js:173
-msgid "Build(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:190
-msgid "No report templates found which match selected build(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:226
-msgid "Part(s) must be selected before printing reports"
-msgstr ""
-
-#: templates/js/translated/report.js:244
-msgid "No report templates found which match selected part(s)"
-msgstr ""
-
-#: templates/js/translated/report.js:279
-msgid "Select Purchase Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:280
-msgid "Purchase Order(s) must be selected before printing report"
-msgstr ""
-
-#: templates/js/translated/report.js:298 templates/js/translated/report.js:352
-msgid "No report templates found which match selected orders"
-msgstr ""
-
-#: templates/js/translated/report.js:333
-msgid "Select Sales Orders"
-msgstr ""
-
-#: templates/js/translated/report.js:334
-msgid "Sales Order(s) must be selected before printing report"
-msgstr ""
-
#: templates/js/translated/stock.js:70
msgid "Serialize Stock Item"
msgstr ""
@@ -7880,7 +8065,7 @@ msgid "Stock item is destroyed"
msgstr ""
#: templates/js/translated/stock.js:1185
-#: templates/js/translated/table_filters.js:165
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
@@ -7928,10 +8113,6 @@ msgstr ""
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1919
-msgid "Details"
-msgstr ""
-
#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
@@ -7968,6 +8149,10 @@ msgstr ""
msgid "No installed items"
msgstr ""
+#: templates/js/translated/stock.js:2147
+msgid "Serial"
+msgstr ""
+
#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -7988,180 +8173,180 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:160
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:340
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:108
-#: templates/js/translated/table_filters.js:375
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
msgid "Subscribed"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:206
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:207
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:198
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:134
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:145
-#: templates/js/translated/table_filters.js:330
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:146
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:155
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:166
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:175
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:180
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:185
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:186
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:211
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:220
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:221
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:230
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:236
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:267
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:295
-#: templates/js/translated/table_filters.js:312
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:345
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:346
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:351
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:387
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
@@ -8189,8 +8374,8 @@ msgstr ""
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:377 templates/search_form.html:5
-#: templates/search_form.html:6
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
msgid "Search"
msgstr ""
@@ -8218,30 +8403,34 @@ msgstr ""
msgid "All"
msgstr ""
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:82 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:84
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:86
+#: templates/navbar.html:90
msgid "Login"
msgstr ""
-#: templates/navbar.html:107
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8421,3 +8610,4 @@ msgstr ""
#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
+
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.mo b/InvenTree/locale/ru/LC_MESSAGES/django.mo
index 45a221f872..538be8df29 100644
Binary files a/InvenTree/locale/ru/LC_MESSAGES/django.mo and b/InvenTree/locale/ru/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/ru/LC_MESSAGES/django.po b/InvenTree/locale/ru/LC_MESSAGES/django.po
index 0cb5a878d6..9baaa8a060 100644
--- a/InvenTree/locale/ru/LC_MESSAGES/django.po
+++ b/InvenTree/locale/ru/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Russian\n"
"Language: ru_RU\n"
@@ -33,260 +33,268 @@ msgstr "Соответствующее действие не найдено"
msgid "Enter date"
msgstr "Введите дату"
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr "Подтвердить"
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr "Подтвердите удаление"
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr "Подтвердите удаление элемента"
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr "Введите пароль"
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr "Введите новый пароль"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr "Подтвердить пароль"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr "Подтвердите новый пароль"
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr "Выбрать категорию"
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
-msgstr ""
+msgid "Email (again)"
+msgstr "Email (еще раз)"
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr "Подтверждение адреса электронной почты"
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
-msgstr ""
+msgstr "Вы должны вводить один и тот же адрес электронной почты."
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Дублировать серийный номер: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr "недопустимое количество"
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr "Пустая строка серийного номера"
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Некорректный идентификатор группы {g}"
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Повторяющийся серийный {g}"
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr "Серийных номеров не найдено"
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Число уникальных серийных номеров ({s}) должно соответствовать количеству ({q})"
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr "Вложения"
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr "Выберите файл для вложения"
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr "Комментарий"
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr "Комментарий к файлу"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr "Пользователь"
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr "дата загрузки"
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
-msgstr ""
+msgstr "Имя файла не должно быть пустым"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
-msgstr ""
+msgstr "Неверная директория вложений"
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr "Название"
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr "Описание"
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr "Описание (необязательно)"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr "родитель"
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
-msgstr ""
+msgstr "Имя файла"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr "Немецкий"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr "Греческий"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr "Английский"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr "Испанский"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr "Французский"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr "Иврит"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr "Итальянский"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr "Японский"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr "Корейский"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr "Голландский"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr "Норвежский"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr "Польский"
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr "Русский"
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr "Шведский"
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr "Тайский"
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr "Турецкий"
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr "Вьетнамский"
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr "Китайский"
@@ -302,196 +310,196 @@ msgstr "Сервер электронной почты не настроен"
msgid "InvenTree system health checks failed"
msgstr "Ошибка проверки состояния системы InvenTree"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr "Ожидаемый"
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr "Размещены"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr "Готово"
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr "Отменено"
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr "Потерян"
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr "Возвращено"
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr "Доставлено"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr "Да"
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
-msgstr "Требуется внимание"
+msgstr "Требует внимания"
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr "Поврежденный"
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr "Разрушено"
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr "Отклоненный"
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr "Отслеживание устаревших запасов"
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr "Товар создан"
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr "Отредактированный товар"
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr "Присвоенный серийный номер"
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr "Склад подсчитан"
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr "Добавлен вручную"
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr "Удалено вручную"
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr "Расположение изменено"
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr "Укомплектовано"
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr "Снято со сборки"
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr "Установленный элемент компонента"
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr "Удален элемент компонента"
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr "Отделить от родительского элемента"
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr "Разбить дочерний элемент"
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr "Отправлено клиенту"
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr "Возвращено от клиента"
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr "Создан вывод заказа сборки"
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr "Вывод заказа сборки завершён"
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr "Получено по заказу на покупку"
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr "Продукция"
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr "Неверный код валюты"
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr "Неверный символ в названии части"
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN должен совпадать с регулярным выражением {pat}"
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "Ссылка должна соответствовать шаблону {pattern}"
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "Недопустимый символ в имени ({x})"
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr "Значение перегрузки не должно быть отрицательным"
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr "Перегрузка не может превысить 100%"
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr "Превышение должно быть целым числом или процентом"
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr "Удалить элемент"
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr "Установите флажок для подтверждения удаления элемента"
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr "Редактировать информацию о пользователе"
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr "Установить пароль"
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr "Пароли должны совпадать"
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr "Информация о системе"
@@ -535,599 +543,574 @@ msgstr "Хэш штрих-кода уже соответствует объек
msgid "Barcode associated with StockItem"
msgstr "Штрих-код, связанный с инвентарем"
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr "Ссылка на заказ"
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr "Срок выполнения заказа"
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr "Целевая дата"
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты."
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr "Количество"
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr "Количество элементов для сборки"
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr "Введите количество для вывода сборки"
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr "Серийные номера"
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr "Введите серийные номера для результатов сборки"
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr "Подтвердите создание выходной информации сборки"
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr "Подтвердите удаление результатов сборки"
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr "Подтвердите снятие со склада"
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr "Пометить сборку как завершенную"
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr "Расположение"
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr "Расположение укомплектованных частей"
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr "Статус"
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr "Создать статус склада вывода"
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr "Подтвердите незавершенность"
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr "Подтвердите завершение с неполным выделением запасов"
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr "Подтвердите завершение сборки"
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr "Подтвердите отмену"
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Подтвердите отмену сборки"
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr "Порядок сборки"
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr "Порядок сборки"
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr "Ссылка на заказ"
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr ""
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr "Детали"
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr ""
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr ""
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr ""
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr ""
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr ""
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr "Целевая дата для сборки. Сборка будет просрочена после этой даты."
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr ""
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr "выполнено"
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr "Ответственный"
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr "Внешняя ссылка"
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr "Ссылка на внешний URL"
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr "Заметки"
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr "Сборка"
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr ""
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr ""
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr "Расположение"
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr "Статус"
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
+#: build/tasks.py:92
+msgid "Stock required for build order"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr "Завершить сборку"
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
-msgstr ""
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
+msgstr "Целевая дата"
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr "Просрочено"
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr "Завершить сборку"
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
+msgstr "Просрочено"
+
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
msgstr ""
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr "Выдано"
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr "Партия"
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr "Создано"
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr "Нет конечной даты"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr "Заказать детали"
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr "Приложения"
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr "Заметки сборки"
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr ""
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr ""
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr ""
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2348,7 +2280,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
@@ -2376,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2385,8 +2317,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,46 +2466,42 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2965,20 +2885,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr "Подтвердите выделение запасов"
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.mo b/InvenTree/locale/sv/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..7156b00547
Binary files /dev/null and b/InvenTree/locale/sv/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/sv/LC_MESSAGES/django.po b/InvenTree/locale/sv/LC_MESSAGES/django.po
index e93e9ae7e4..5eccf5a18c 100644
--- a/InvenTree/locale/sv/LC_MESSAGES/django.po
+++ b/InvenTree/locale/sv/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:28\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Swedish\n"
"Language: sv_SE\n"
@@ -33,260 +33,268 @@ msgstr "Ingen matchande åtgärd hittades"
msgid "Enter date"
msgstr "Ange datum"
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr "Bekräfta"
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr "Bekräfta borttagning"
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr "Bekräfta borttagning av artikel"
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr "Ange lösenord"
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr "Ange nytt lösenord"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr "Bekräfta lösenord"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr "Bekräfta nytt lösenord"
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr "Välj Kategori"
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr "Ogiltigt antal angivet"
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr "Tom serienummersträng"
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Ogiltig grupp: {g}"
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr "Inga serienummer hittades"
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr "Bilaga"
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr "Välj fil att bifoga"
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr "Kommentar"
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr "Fil kommentar"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr "Användare"
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr "uppladdningsdatum"
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr "Filnamnet får inte vara tomt"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr "Ogiltig katalog för bilaga"
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "Filnamnet innehåller ogiltiga tecken '{c}'"
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr "Filnamn saknar ändelse"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr "Det finns redan en bilaga med detta filnamn"
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr "Fel vid namnbyte av fil"
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr "Ogiltigt val"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr "Namn"
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr "Beskrivning"
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr "Beskrivning (valfritt)"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr "överordnad"
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr "Måste vara ett giltigt nummer"
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr "Filnamn"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr "Tyska"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr "Grekiska"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr "Engelska"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr "Spanska"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr "Franska"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr "Hebreiska"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr "Italienska"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr "Japanska"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr "Koreanska"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr "Nederländska"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr "Norska"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr "Polska"
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr "Ryska"
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr "Svenska"
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr "Thailändska"
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr "Turkiska"
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr "Vietnamesiska"
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr "Kinesiska"
@@ -302,196 +310,196 @@ msgstr "Backend för e-post är inte konfigurerad"
msgid "InvenTree system health checks failed"
msgstr "InvenTree systemhälsokontroll misslyckades"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr "Väntar"
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr "Placerad"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr "Slutför"
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr "Avbruten"
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr "Förlorad"
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr "Återlämnad"
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr "Skickad"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr "Skadad"
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr "Förstörd"
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr "Avvisad"
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -535,599 +543,574 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr ""
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr ""
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr ""
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr ""
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr ""
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr ""
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr ""
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr ""
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr ""
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr ""
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr ""
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr ""
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr ""
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr ""
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr ""
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr ""
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr ""
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr ""
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr ""
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr ""
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr ""
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr ""
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr ""
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr ""
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr ""
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr ""
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr ""
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
+#: build/tasks.py:92
+msgid "Stock required for build order"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
msgstr ""
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
msgstr ""
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr ""
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr ""
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr ""
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr ""
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr ""
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2348,7 +2280,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
@@ -2376,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2385,8 +2317,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,46 +2466,42 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2965,20 +2885,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.mo b/InvenTree/locale/th/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..17059a4eda
Binary files /dev/null and b/InvenTree/locale/th/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/th/LC_MESSAGES/django.po b/InvenTree/locale/th/LC_MESSAGES/django.po
index 1f25b70e4e..e6326f8035 100644
--- a/InvenTree/locale/th/LC_MESSAGES/django.po
+++ b/InvenTree/locale/th/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Thai\n"
"Language: th_TH\n"
@@ -33,260 +33,268 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr ""
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr ""
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr ""
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr ""
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr ""
@@ -302,196 +310,196 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -535,599 +543,574 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr ""
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr ""
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr ""
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr ""
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr ""
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr ""
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr ""
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr ""
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr ""
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr ""
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr ""
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr ""
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr ""
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr ""
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr ""
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr ""
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr ""
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr ""
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr ""
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr ""
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr ""
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr ""
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr ""
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr ""
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr ""
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr ""
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr ""
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
+#: build/tasks.py:92
+msgid "Stock required for build order"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
msgstr ""
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
msgstr ""
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr ""
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr ""
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr ""
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr ""
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr ""
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2348,7 +2280,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
@@ -2376,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2385,8 +2317,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,46 +2466,42 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2965,20 +2885,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.mo b/InvenTree/locale/tr/LC_MESSAGES/django.mo
index 2c90dd0c81..3c37bd7989 100644
Binary files a/InvenTree/locale/tr/LC_MESSAGES/django.mo and b/InvenTree/locale/tr/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/tr/LC_MESSAGES/django.po b/InvenTree/locale/tr/LC_MESSAGES/django.po
index 587d5d5f33..f6a1da6da8 100644
--- a/InvenTree/locale/tr/LC_MESSAGES/django.po
+++ b/InvenTree/locale/tr/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Turkish\n"
"Language: tr_TR\n"
@@ -33,260 +33,268 @@ msgstr "Eşleşen eylem bulunamadı"
msgid "Enter date"
msgstr "Tarih giriniz"
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr "Onay"
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr "Silmeyi Onayla"
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr "Silmeyi onayla"
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr "Şifrenizi girin"
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr "Lütfen Yeni Parolayı Girin"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr "Parolayı doğrulayın"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr "Yeni parolayı doğrulayın"
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr "Kategori Seçin"
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "Tekrarlanan seri {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr "Geçersiz veri sağlandı"
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr "Boş seri numarası dizesi"
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "Geçersiz grup: {g}"
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "Tekrarlanan seri {g}"
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr "Seri numarası bulunamadı"
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "Benzersiz seri numaralarının sayısı ({s}) girilen miktarla eşleşmeli ({q})"
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr "Ek"
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr "Eklenecek dosyayı seç"
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr "Yorum"
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr "Dosya yorumu"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr "Kullanıcı"
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr "yükleme tarihi"
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr "Geçersiz seçim"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr "Adı"
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr "Açıklama"
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr "Açıklama (isteğe bağlı)"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr "üst"
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr "Geçerli bir numara olmalı"
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr "Almanca"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr "Yunanca"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr "İngilizce"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr "İspanyolca"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr "Fransızca"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr "İbranice"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr "İtalyanca"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr "Japonca"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr "Korece"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr "Flemenkçe"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr "Norveççe"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr "Polonyaca"
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr "Rusça"
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr "İsveççe"
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr "Tay dili"
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr "Türkçe"
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr "Çince"
@@ -302,196 +310,196 @@ msgstr "E-posta arka ucu yapılandırılmadı"
msgid "InvenTree system health checks failed"
msgstr "InvenTree sistem sağlık kontrolü başarısız"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr "Bekliyor"
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr "Sipariş verildi"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr "Tamamlandı"
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr "İptal edildi"
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr "Kayıp"
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr "İade"
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr "Sevk edildi"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr "TAMAM"
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr "Dikkat gerekli"
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr "Hasarlı"
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr "Kullanılamaz durumda"
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr "Reddedildi"
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr "Eski stok izleme girişi"
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr "Stok kalemi oluşturuldu"
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr "Düzenlenen stok kalemi"
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr "Atanan seri numarası"
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr "Stok sayıldı"
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr "Stok manuel olarak eklendi"
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr "Stok manuel olarak çıkarıldı"
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr "Konum değişti"
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr "Montajda kullanıldı"
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr "Montajdan çıkarıldı"
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr "Bileşen ögesinde kullanıldı"
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr "Bileşen ögesinden çıkarıldı"
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr "Üst ögeden ayır"
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr "Alt ögeyi ayır"
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr "Müşteriye gönderildi"
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr "Müşteriden geri döndü"
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr "Yapım emri çıktısı oluşturuldu"
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr "Yapım emri çıktısı tamamlandı"
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr "Satın alma emri karşılığında alındı"
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr "Üretim"
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr "Geçerli bir para birimi kodu değil"
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr "Parça adında geçersiz karakter"
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN regex kalıbıyla eşleşmelidir {pat}"
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "Referans {pattern} deseniyle mutlaka eşleşmeli"
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "({x}) adında geçersiz karakter"
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr "Fazlalık değeri negatif olmamalıdır"
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr "Fazlalık %100'ü geçmemelidir"
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr "Fazlalık bir tamsayı veya yüzde olmalıdır"
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr "Ögeyi Sil"
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr "Öge silme işlemini onaylamak için kutuyu işaretleyin"
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr "Kullanıcı Bilgisini Düzenle"
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr "Şifre Belirle"
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr "Parola alanları eşleşmelidir"
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr "Sistem Bilgisi"
@@ -535,599 +543,574 @@ msgstr "Barkod karması (hash) zaten stok kalemi nesnesiyle eşleşiyor"
msgid "Barcode associated with StockItem"
msgstr "Barkod başka bir stok kalemiyle ilişkili"
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr "Yapım İşi Emri referansı"
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr "Emir hedef tarihi"
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr "Hedeflenen tarih"
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak."
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr "Miktar"
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr "Yapılacak öge sayısı"
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr "Yapım işi çıktısı için miktarını girin"
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr "Seri Numaraları"
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr "Yapım işi çıktısı için seri numaraları girin"
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr "Yapım işi çıktısının oluşturulmasını onaylayın"
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr "Yapım işi çıktısının silinmesini onaylayın"
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr "Stok tahsisinin iptalini onayla"
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr "Yapım işini tamamlandı olarak işaretle"
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr "Konum"
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr "Tamamlanmış parçaların konumu"
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr "Durum"
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr "Yapım işi çıktısı stok durumu"
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr "Eksik olarak onayla"
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr "Eksik parça tahsisi ile tamamlamayı onayla"
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr "Yapım işinin tamamlandığını onaylayın"
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr "İptali Onayla"
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr "Yapım işi iptalini onayla"
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr "Yapım İşi Emri"
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr "Yapım İşi Emirleri"
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr "Yapım İşi Emri Referansı"
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr "Referans"
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr "Yapım işinin kısa açıklaması"
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "Üst Yapım İşi"
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği yapım işi emri"
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr "Parça"
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr "Yapım işi için parça seçin"
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr "Satış Emri Referansı"
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr "Bu yapım işinin tahsis edildiği satış emri"
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr "Kaynak Konum"
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr "Bu yapım işi için stok alınacak konumu seçin (her hangi bir stok konumundan alınması için boş bırakın)"
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr "Hedef Konum"
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr "Tamamlanmış ögelerin saklanacağı konumu seçiniz"
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr "Yapım İşi Miktarı"
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr "Yapım işi stok kalemlerinin sayısı"
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr "Tamamlanmış ögeler"
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr "Tamamlanan stok kalemlerinin sayısı"
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr "Yapım İşi Durumu"
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr "Yapım işi durum kodu"
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr "Sıra numarası"
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr "Yapım işi çıktısı için sıra numarası"
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr "Oluşturulma tarihi"
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr "Hedef tamamlama tarihi"
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr "Yapım işinin tamamlanması için hedef tarih. Bu tarihten sonra yapım işi gecikmiş olacak."
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr "Tamamlama tarihi"
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr "tamamlayan"
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr "Veren"
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr "Bu yapım işi emrini veren kullanıcı"
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr "Sorumlu"
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr "Bu yapım işi emrinden sorumlu kullanıcı"
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr "Harici Bağlantı"
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr "Harici URL'ye bağlantı"
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr "Notlar"
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr "Yapım işi için ekstra notlar"
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr "Yapım işi çıktısı belirtilmedi"
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr "Yapım işi çıktısı zaten tamamlanmış"
-#: build/models.py:720
+#: build/models.py:716
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:1102
+#: build/models.py:1108
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:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr "Tahsis edilen miktar sıfırdan büyük olmalıdır"
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr "Seri numaralı stok için miktar bir olmalı"
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr "Yapım İşi"
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr "Yapım işi için tahsis edilen parçalar"
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr "Stok Kalemi"
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr "Kaynak stok kalemi"
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr "Yapım işi için tahsis edilen stok miktarı"
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr "Kurulduğu yer"
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr "Hedef stok kalemi"
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr "Konum"
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr "Durum"
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
-msgstr "Seri Numara"
+#: build/tasks.py:92
+msgid "Stock required for build order"
+msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr "Yazdırma işlemleri"
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr "Yapım İşi işlemleri"
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr "Yapım İşini Düzenle"
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr "Yapım İşini İptal Et"
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr "Tamamlanmış Yapım İşi"
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr "Bu yapım işi emri, %(link)s sipariş emrine tahsis edilmiştir"
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr "Bu yapım işi emri, %(link)s yapım iş emrinin altıdır"
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr "Yapım işi tamamlandı olarak işaretlenmeye hazır"
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr "Bekleyen çıktılar kaldığı için yapım işi emri tamamlanamıyor"
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr "Gerekli yapım işi miktarı henüz tamamlanmadı"
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr "Stok, yapım işi emri için tamamen tahsis edilemedi"
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
-msgstr "Yönetici görünümü"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
+msgstr "Hedeflenen tarih"
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr "Vadesi geçmiş"
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr "Yazdırma işlemleri"
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr "Yapım İşi Emrini Yazdır"
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr "Tamamlanmış Yapım İşi"
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr "Yapım İşi işlemleri"
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr "Yapım İşini Düzenle"
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr "Yapım İşini İptal Et"
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr "Yapım İşi Detayları"
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr "Bu yapım işinin %(target)s tarihinde süresi doluyor"
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
-msgstr "İlerleme"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
+msgstr "Vadesi geçmiş"
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr "Tamamlandı"
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr "Sipariş Emri"
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr "Veren"
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr "Tamamlanmamış Çıktılar"
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr "Tamamlanmamış yapım işi çıktıları kaldığı için yapım işi emri tamamlanamıyor"
@@ -1175,220 +1158,203 @@ msgstr "Gerekli yapım işi miktarı tamamlanmadı"
msgid "Required stock has not been fully allocated"
msgstr "Gerekli stok tamamen tahsis edilemedi"
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
-msgstr "Bu çıktı için stok tahsisi tamamlandı"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
+msgstr "Yapım İşi Detayları"
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr "Stok tahsisi tamamlanmamış"
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr "takip edilebilir parçalar tamamen tahsis edilemedi"
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr "Aşağıdaki ögeler oluşturulacak"
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr "Stok Kaynağı"
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr "Stok herhangi bir konumdan alınabilir."
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr "Hedef"
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr "Hedef konumu belirtilmedi"
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr "Toplu"
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr "Oluşturuldu"
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr "Hedef tarih ayarlanmadı"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr "Tamamlandı"
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr "Yapım İşi tamamlanmadı"
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr "Alt Yapım İşi Emrileri"
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr "Yapım İşi için Stok Tahsis Et"
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr "Yapım işi için stok tahsis et"
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr "Stok Tahsis Et"
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr "Stok tahsisini kaldır"
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr "Stok Tahsisini Kaldır"
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr "Yapım işi için stok tahsis et"
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr "Stok Tahsis Et"
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr "Gerekli parçaları sipariş edin"
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr "Parça Siparişi"
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr "Takip edilmeyen stok yapım işi emri için tamamen tahsis edildi"
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "Takip edilmeyen stok yapım işi emri için tamamen tahsis edilemedi"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr "Bu yapım işi emri, herhangi bir takip edilmeyen malzeme listesi öğesine sahip değil"
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr "Tamamlanmamış Yapım İşi Çıktıları"
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr "Yeni yapım işi çıktısı oluştur"
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
-msgstr "Yeni Çıktı Oluştur"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
+msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
-msgstr "Yeni bir yapım işi çıktısı oluştur"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
+msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
-msgstr "Tamamlanmamış yapım işi çıktısı kalmadı."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
+msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
-msgstr "Yukarıdaki düğmeyi kullanarak yeni bir yapım işi çıktısı oluştur"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
+msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr "Tamamlanmış Yapım İşi Çıktıları"
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr "Ekler"
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr "Yapım İşi Notları"
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr "Notları Düzenle"
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr "Dosya Ekle"
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr "Ek Düzenle"
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr "Silme İşlemini Onayla"
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr "Eki Sil"
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr "Yapım işi çıktısına tahsis edilen stok miktarını değiştir"
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr "Yeni Yapım İşi Emri"
@@ -1396,46 +1362,29 @@ msgstr "Yeni Yapım İşi Emri"
msgid "Print Build Orders"
msgstr "Yapım İşi Emirlerini Yazdır"
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr "Takvim görünümünü görüntüle"
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr "Liste görünümünü görüntüle"
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
-msgstr "Yapım İşi Emri Detayları"
+msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
-msgstr "Detaylar"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr "Yapım İşi Çıktıları"
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr "Alt Yapım İşleri"
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr "Yapım İşi Emri Notları"
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr "Bu yapım işi için tahsis edilen tüm stokları kaldırmak istediğinizden emin misiniz?"
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
-msgstr "Tüm eksik stok tahsisleri yapım işinden kaldırılacak"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
#: build/views.py:76
msgid "Build was cancelled"
@@ -1449,7 +1398,7 @@ msgstr "Yapım İşi Çıktısı Oluştur"
msgid "Maximum output quantity is "
msgstr "Maksimum çıktı miktarı "
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr "Seri numaraları zaten mevcut"
@@ -1461,11 +1410,11 @@ msgstr "Seri numaraları takip edilebilir yapım işi çıktıları için gerekl
msgid "Delete Build Output"
msgstr "Yapım İşi Çıktısı Sil"
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr "Yapım işi stoku tahsisinin iptalini onayla"
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr "Onay kutusunu işaretleyin"
@@ -1473,7 +1422,7 @@ msgstr "Onay kutusunu işaretleyin"
msgid "Build output does not match build"
msgstr "Yapım işi çıktısı yapım işi ile eşleşmiyor"
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr "Yapım işi çıktısı belirtilmeli"
@@ -1481,39 +1430,19 @@ msgstr "Yapım işi çıktısı belirtilmeli"
msgid "Build output deleted"
msgstr "Yapım işi çıktısı silindi"
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr "Tamamlanmış Yapım İşi Emri"
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr "Yapım işi emri tamamlanamadı - eksik çıktılar kaldı"
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr "Tamamlanmış yapım işi emri"
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr "Tamamlanmış Yapım İşi Çıktısı"
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr "Geçersiz stok durum değeri seçildi"
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr "Tamamlanacak miktar yapım işi çıktı miktarını aşamaz"
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr "Eksik yapım işinin tamamlandığını onaylayın"
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr "Yapım işi çıktısı tamamlandı"
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr "Yapım İşi Emrini Sil"
@@ -1554,725 +1483,727 @@ msgstr "{name.title()} Dosya"
msgid "Select {name} file to upload"
msgstr "{name} dosyasını yüklemek için seçin"
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr "Bir tam sayı olmalı"
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr "Anahtar dizesi benzersiz olmalı"
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "Şirket adı"
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr "Ana URL"
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr "Varsayılan Para Birimi"
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr "Varsayılan para birimi"
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr "URL'den indir"
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr "Harici URL'den resim ve dosyaların indirilmesine izin ver"
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr "Barkod Desteği"
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr "Barkod tarayıcı desteğini etkinleştir"
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr "DPN Regex"
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr "Parça DPN eşleştirmesi için Düzenli İfade Kalıbı (Regex)"
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr "Yinelenen DPN'ye İzin Ver"
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr "Birden çok parçanın aynı DPN'yi paylaşmasına izin ver"
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr "DPN Düzenlemeye İzin Ver"
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr "Parçayı düzenlerken DPN değiştirmeye izin ver"
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr "Kategori Paremetre Sablonu Kopyala"
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr "Parça oluştururken kategori parametre şablonlarını kopyala"
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr "Şablon"
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr "Parçaları varsayılan olan şablondur"
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr "Montaj"
-#: common/models.py:611
+#: common/models.py:711
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:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr "Bileşen"
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr "Parçalar varsayılan olarak alt bileşen olarak kullanılabilir"
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr "Satın Alınabilir"
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr "Parçalar varsayılan olarak satın alınabilir"
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr "Satılabilir"
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr "Parçalar varsayılan olarak satılabilir"
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr "Takip Edilebilir"
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr "Parçalar varsayılan olarak takip edilebilir"
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "Sanal"
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr "Parçalar varsayılan olarak sanaldır"
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr "Formlarda Fiyat Göster"
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr "İlgili parçaları göster"
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr "Hata Ayıklama Modu"
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr "Raporları hata ayıklama modunda üret (HTML çıktısı)"
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr "Sayfa Boyutu"
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr "PDF raporlar için varsayılan sayfa boyutu"
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr "Test Raporları"
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr "günler"
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr "Stok konumu ve ögeler üzerinde sahiplik kontrolünü etkinleştirin"
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr "Formlarda Miktarı Göster"
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr "Fiyat"
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr "Varsayılan"
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr "Mevcut değer"
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr "Ayarları Değiştir"
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr "Kullanıcı Ayarlarını Değiştir"
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr "Dosya Yükle"
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr "Alanları Eşleştir"
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr "İletişim telefon numarası"
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr "E-posta"
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr "Bağlantı"
@@ -2348,7 +2280,7 @@ msgstr "Bağlantı"
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr "Resim"
@@ -2376,8 +2308,8 @@ msgstr "üretici mi"
msgid "Does this company manufacture parts?"
msgstr "Bu şirket üretim yapıyor mu?"
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr "Para birimi"
@@ -2385,8 +2317,8 @@ msgstr "Para birimi"
msgid "Default currency used for this company"
msgstr "Bu şirket için varsayılan para birimi"
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr "Temel Parça"
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr "Parça seçin"
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr "Üretici"
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr "Üretici seçin"
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr "ÜPN"
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr "Üretici Parça Numarası"
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,9 +2373,8 @@ msgstr "Parametre adı"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr "Değer"
@@ -2451,8 +2382,10 @@ msgstr "Değer"
msgid "Parameter value"
msgstr "Parametre değeri"
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr "Tedarikçi"
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr "Tedarikçi seçin"
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr "SKU"
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "Not"
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr "temel maliyet"
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr "Paketleme"
@@ -2525,7 +2458,7 @@ msgstr "Paketleme"
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr "çoklu"
@@ -2533,46 +2466,42 @@ msgstr "çoklu"
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr "Para Birimi Kodu"
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr "Satın Alma Emri Oluştur"
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr "Müşteri"
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr "Tedarikçi Parçaları"
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr "Yeni tedarikçi parçası oluştur"
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr "Yeni Tedarikçi Parçası"
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr "Parçaları sil"
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr "Parçaları Sil"
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr "Tedarikçi Stoku"
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr "Satın Alma Emirleri"
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr "Yeni satın alma emri oluştur"
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr "Yeni Satın Alma Emri"
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr "Satış Emirleri"
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr "Yeni satış emri oluştur"
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr "Yeni Satış Emri"
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr "Atanan Stok"
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr "Üreticiler"
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "Parça siparişi"
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr "Tedarikçi parçalarını sil"
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr "Stok"
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr "Stok Kalemleri"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr "Tedarikçi Parçası"
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr "Tedarikçi parçasını düzenle"
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr "Tedarikçi parçasını sil"
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr "Tedarikçi Parçası Detayları"
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr "Tedarikçi Parça Stoku"
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr "Tedarikçi Parçası Emirleri"
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr "Fiyat Bilgisi"
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr "Stok"
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr "Tedarikçi Parçası Fiyatlandırması"
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr "Fiyatlandırma"
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr "Stok Kalemleri"
+
#: company/views.py:50
msgid "New Supplier"
msgstr "Yeni Tedarikçi"
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr "Üreticiler"
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr "Yeni Üretici"
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr "Müşteriler"
@@ -2965,20 +2885,20 @@ msgstr "Şirketler"
msgid "New Company"
msgstr "Yeni Şirket"
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr "Resmi İndirin"
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "Geçersiz yanıt: {code}"
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr "Sağlanan URL geçerli bir resim dosyası değil"
@@ -2994,7 +2914,7 @@ msgstr "Etiket adı"
msgid "Label description"
msgstr "Etiket tanımı"
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr "Etiket"
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr "Sipariş ver"
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr "Siparişi tamamlandı olarak işaretle"
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr "Siparişi iptal et"
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr "Stok kalemi seri numaları girin"
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr "Sipariş açıklaması"
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr "Harici sayfaya bağlantı"
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr "Oluşturan"
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr "Sipariş notları"
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr "Sipariş referansı"
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr "Tahsis miktarı stok miktarını aşamaz"
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr "Stok kalemi fazladan tahsis edilmiş"
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr "Seri numaralı stok kalemi için miktar bir olmalı"
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr "Stok tahsis miktarını girin"
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
-msgstr "Yazdır"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
+msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr "Emiri dosya çıkar"
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr "Sipariş Emri için Dosya Yükle"
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr "Ürünler"
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr "Detaylar"
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr "Sipariş Notları"
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr "Uyarı"
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr "Seri numarası ile stok kalemlerini tahsis et"
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr "Siparişi İptal Et"
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr "Parçalar"
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr "Varsayılan Konum"
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr "Dışa aktarılan malzeme listesine parça tedarikçisi verilerini dahil edin"
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr "Parametre şablonunu aynı seviyedeki kategorilere ekle"
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr "Parametre şablonunu tüm kategorilere ekle"
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr "Bu kategori içindeki parçalar için varsayılan konum"
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr "Parça Kategorileri"
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr "Parçalar"
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr "Sonraki kullanılabilir seri numaraları"
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr "Sonraki müsait seri numarası"
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr "En son seri numarası"
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr "Yinelenen DPN'ye parça ayarlarında izin verilmiyor"
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr "Parça adı"
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr "Şablon Mu"
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr "Bu parça bir şablon parçası mı?"
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr "Bu parça başka bir parçanın çeşidi mi?"
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr "Çeşidi"
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr "Parça açıklaması"
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr "Anahtar kelimeler"
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr "DPN"
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr "Parça revizyon veya versiyon numarası"
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr "Revizyon"
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr "Varsayılan Tedarikçi"
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr "Varsayılan tedarikçi parçası"
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr "Minimum Stok"
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr "Bu parça diğer parçalardan yapılabilir mi?"
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr "Bu parça diğer parçaların yapımında kullanılabilir mi?"
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr "Bu parça dış tedarikçilerden satın alınabilir mi?"
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr "Bu parça müşterilere satılabilir mi?"
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr "Aktif"
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr "Bu parça aktif mi?"
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr "Oluşturan Kullanıcı"
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr "Test şablonları sadece takip edilebilir paçalar için oluşturulabilir"
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr "Test Adı"
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr "Test Açıklaması"
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr "Gerekli"
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr "Testi geçmesi için bu gerekli mi?"
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr "Parametre şablon adı benzersiz olmalıdır"
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr "Parametre Şablonu"
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
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:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr "Çeşide İzin Ver"
-#: part/models.py:2402
+#: part/models.py:2601
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:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr "Malzeme Listesi dosyası gerekli sütün adlarını sağlandığı şekilde içermelidir "
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr "Malzeme Listesi Şablonu Yükle"
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
-msgstr "Kategori Detayları"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
+msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr "Alt kategoriler"
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr "Parçalar (Alt kategoriler dahil)"
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr "Kategori ayarla"
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr "Kategori Ayarla"
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr "Son Seri Numarası"
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr "Parça Stoku"
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr "Parça Test Şablonları"
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr "Test Şablonu Ekle"
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr "Yeni Sipariş"
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr "Parça Çeşitleri"
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr "Yeni çeşit oluştur"
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr "Yeni Çeşit"
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr "Parça Tedarikçileri"
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr "Çeşitler"
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr "Fiyatlar"
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
-msgstr "Bu parça bir şablon parçadır (Bu parçanın çeşitleri yapılabilir)"
-
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr "Parça stoku seri numarası ile takip edilebilir"
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr "Bu parça harici tedarikçilerden satın alınabilir"
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr "Pasif"
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr "Barkod işlemleri"
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr "Etiket Yazdır"
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr "Stok işlemleri"
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr "Parça işlemleri"
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr "Bu parça bir şablon parçadır (Bu parçanın çeşitleri yapılabilir)"
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr "Parça stoku seri numarası ile takip edilebilir"
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr "Bu parça harici tedarikçilerden satın alınabilir"
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr "Pasif"
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr "Bu parça %(link)s parçasının bir çeşididir"
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr "Yapım İşi Emirleri için Gerekli"
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr "Satış Emirleri için Gerekli"
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr "Son Seri Numarası"
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr "Hesapla"
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr "Toplam Maliyet"
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr "Aşağıdaki parçalara kategori ayarla"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr "Stok Yok"
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr "Düşük Stok"
@@ -5041,132 +4988,124 @@ msgstr "Yeni parça çeşidi oluştur"
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr "Hiçbiri"
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr "Parça Parametre Şablonu Oluştur"
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr "Parça Parametre Şablonu Düzenle"
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr "Parça Parametre Şablonu Sil"
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr "Kategori Parametre Şablonu Oluştur"
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr "Kategori Parametre Şablonu Düzenle"
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr "Kategori Parametre Şablonu Sil"
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr "İçin Gerekli Olan"
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr "Seri Numara"
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr "Bu stok kalemi için son kullanma tarihi"
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr "Benzersiz seri numaraları giriniz (veya boş bırakınız)"
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr "Seri numaralandırılmış stok için hedef konum(varsayılan olarak, geçerli konumda kalacaktır)"
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr "Seri numaraları"
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr "Benzersiz seri numaraları (miktar ile eşleşmeli)"
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr "İşlem notu ekle (isteğe bağlı)"
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr "Test raporu şablonu seç"
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr "Kurulacak stok kalemi"
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr "Sökülen ögeler için hedef konum"
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr "Kurulu stok kalemlerinin kaldırılmasını onayla"
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr "Bu seri numarasına sahip stok kalemi zaten var"
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr "Seri numarası olan ögenin miktarı bir olmalı"
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr "Miktar birden büyük ise seri numarası ayarlanamaz"
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr "Üst Stok Kalemi"
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr "Bu stok kalemi için tedarikçi parçası seçin"
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "Stok Konumu"
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr "Bu öge için seri numarası"
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr "Seri numaraları tam sayı listesi olmalı"
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr "Miktar seri numaları ile eşleşmiyor"
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr "Seri numaraları zaten mevcut: {exists}"
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr "Stok kalemi stokta olmadığı için taşınamaz"
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr "Konuma Tara"
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr "Yazdırma işlemleri"
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr "Stok ayarlama işlemleri"
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr "Stoku seri numarala"
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr "Çeşide çevir"
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
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:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
msgid "This stock item is serialized - it has a unique serial number and the quantity cannot be adjusted."
msgstr "Bu stok kalemi seri numaları - Benzersiz bir seri numarasına sahip ve miktarı ayarlanamaz."
-#: stock/templates/stock/item_base.html:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr "Konum ayarlanmadı"
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, 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:401
+#: stock/templates/stock/item_base.html:388
#, 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:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr "Kaydet"
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr "Bu stok kalemi için seri numaralandırılmış ögeler oluştur."
msgid "Select quantity to serialize, and unique serial numbers."
msgstr "Seri numaralandırılacak miktarı ve benzersiz seri numaralarını seçin."
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenlenemez."
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr "Yeni stok konumu oluştur"
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr "Konum işlemleri"
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr "Konumu düzenle"
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr "Konumu sil"
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
-msgstr "Konum Detayları"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
+msgstr "Yeni stok konumu oluştur"
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
-msgstr "Konum Yolu"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
+msgstr "Yeni Konum"
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
-msgstr "Konum Tanımı"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
+msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr "Bu konumun sahipleri listesinde değilsiniz. Bu stok konumu düzenlenemez."
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr "Alt konumlar"
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr "Stok Konumları"
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr "Yazdırma İşlemleri"
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr "Etiketleri yazdır"
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr "Yeni Konum"
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr "Yeni konum oluştur"
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr "Bu stok konumunu silmek istediğinizden emin misiniz?"
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr "Stok Kalemine Dönüştür"
@@ -5986,104 +5918,100 @@ msgstr "Bu işlem kolayca geri alınamaz"
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr "Stok konumunu düzenle"
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr "Sahip gerekli (sahip kontrolü etkinleştirildi)"
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr "Stok Konumu QR Kodu"
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr "Geçerli bir konum belirtiniz"
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr "Stok ayarlamasını onayla"
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr "Yeni Stok konumu oluştur"
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr "Stoku Seri Numarala"
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr "Stok Konumunu Sil"
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr "Kategori Ayarları"
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr "Parça Parametre Şablonu"
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr "Kategori parametre şablonu bulunamadı"
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr "Şablonu Düzenle"
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr "Şablonu Sil"
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr "Parça parametre şablonu bulunamadı"
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr "Arama Ayarları"
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,140 +6272,156 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr "Tema Ayarları"
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr "Tema Seç"
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr "Dil Ayarları"
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr "Dili Ayarla"
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr "Tema Ayarları"
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
+msgstr "Tema Seç"
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr "Ana Sayfa Ayarları"
@@ -6501,128 +6430,133 @@ msgstr "Ana Sayfa Ayarları"
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr "Arama Ayarları"
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr "InvenTree Sürüm Bilgisi"
-#: templates/about.html:22
-msgid "InvenTree Version"
-msgstr "InvenTree Sürümü"
-
-#: templates/about.html:27
-msgid "Development Version"
-msgstr ""
-
-#: templates/about.html:30
-msgid "Up to Date"
-msgstr "Güncel"
-
-#: templates/about.html:32
-msgid "Update Available"
-msgstr "Güncelleme Mevcut"
-
-#: templates/about.html:42
-msgid "Commit Hash"
-msgstr "Commit Hash Değeri"
-
-#: templates/about.html:49
-msgid "Commit Date"
-msgstr "Commit Tarihi"
-
-#: templates/about.html:55
-msgid "InvenTree Documentation"
-msgstr ""
-
-#: templates/about.html:60
-msgid "API Version"
-msgstr "API Sürümü"
-
-#: templates/about.html:65
-msgid "Python Version"
-msgstr "Python Sürümü"
-
-#: templates/about.html:70
-msgid "Django Version"
-msgstr "Django Sürümü"
-
-#: templates/about.html:75
-msgid "View Code on GitHub"
-msgstr ""
-
-#: templates/about.html:80
-msgid "Credits"
-msgstr "Katkıda Bulunanlar"
-
-#: templates/about.html:85
-msgid "Mobile App"
-msgstr "Mobil Uygulama"
-
-#: templates/about.html:90
-msgid "Submit Bug Report"
-msgstr "Hata Raporu Gönder"
-
-#: templates/about.html:97 templates/clip.html:4
-msgid "copy to clipboard"
-msgstr "panoya kopyala"
-
-#: templates/about.html:97
-msgid "copy version information"
-msgstr "sürüm bilgisini kopyala"
-
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
msgid "Close"
msgstr "Kapat"
+#: templates/about.html:20
+msgid "InvenTree Version"
+msgstr "InvenTree Sürümü"
+
+#: templates/about.html:25
+msgid "Development Version"
+msgstr ""
+
+#: templates/about.html:28
+msgid "Up to Date"
+msgstr "Güncel"
+
+#: templates/about.html:30
+msgid "Update Available"
+msgstr "Güncelleme Mevcut"
+
+#: templates/about.html:40
+msgid "Commit Hash"
+msgstr "Commit Hash Değeri"
+
+#: templates/about.html:47
+msgid "Commit Date"
+msgstr "Commit Tarihi"
+
+#: templates/about.html:53
+msgid "InvenTree Documentation"
+msgstr ""
+
+#: templates/about.html:58
+msgid "API Version"
+msgstr "API Sürümü"
+
+#: templates/about.html:63
+msgid "Python Version"
+msgstr "Python Sürümü"
+
+#: templates/about.html:68
+msgid "Django Version"
+msgstr "Django Sürümü"
+
+#: templates/about.html:73
+msgid "View Code on GitHub"
+msgstr ""
+
+#: templates/about.html:78
+msgid "Credits"
+msgstr "Katkıda Bulunanlar"
+
+#: templates/about.html:83
+msgid "Mobile App"
+msgstr "Mobil Uygulama"
+
+#: templates/about.html:88
+msgid "Submit Bug Report"
+msgstr "Hata Raporu Gönder"
+
+#: templates/about.html:95 templates/clip.html:4
+msgid "copy to clipboard"
+msgstr "panoya kopyala"
+
+#: templates/about.html:95
+msgid "copy version information"
+msgstr "sürüm bilgisini kopyala"
+
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr "Mevcut"
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr "Test Raporu Şablonu Seç"
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr "Seçili yapım işleri için rapor şablonu bulunamadı"
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "Parçaları Seçin"
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr "Cevap Yok"
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr "Bu fonksiyona erişmek için gerekli izinlere sahip değilsiniz"
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr "Stok Kalemlerini bu konuma kaydet"
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr "Stok kalemi zaten bu konumda"
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr "Konuma Kaydet"
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr "Barkod geçerli bir konumla eşleşmiyor"
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
-msgstr "Mevcut"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
+msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr "İşlemler"
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr "Stok tahsisini düzenle"
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr "Stok tahsisini sil"
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr "Gerekli Parça"
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr "Stok tahsisini düzenle"
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr "Stok tahsisini sil"
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr "Stok tahsisini onayla"
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr "Şablon Parça"
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr "doğru"
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr "yanlış"
@@ -7235,57 +7316,61 @@ msgstr "yanlış"
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr "Etiket Seç"
msgid "Select Label Template"
msgstr "Etiket Şablonu Seç"
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
-msgstr "Toplam fiyat"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
+msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr "Seri numaralarını tahsis et"
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr "Çeşit bulunamadı"
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr "Sorgu ile eşleşen test şablonu bulunamadı"
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr "Stok konumu ayarlanmadı"
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr "konumlar"
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr "Tanımsız konum"
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr "Konum artık yok"
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr "Seri No"
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr "Çeşit Stokuna İzin Ver"
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr "Alt konumları dahil et"
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr "Konumları dahil et"
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr "Seri Numaralı"
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr "Seri numarası BvE"
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr "Seri numarası büyük veya eşit"
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr "Seri numarası KvE"
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr "Seri numarası küçük veya eşit"
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr "Seri numarası"
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr "Alt konumlardaki stoku dahil et"
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr "Çeşitleri Dahil Et"
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr "Çeşit parçaların stok kalemlerini dahil et"
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr "Alt kategorilerdeki parçaları dahil et"
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr "DPN Var"
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr "Barkod İşlemleri"
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.mo b/InvenTree/locale/vi/LC_MESSAGES/django.mo
new file mode 100644
index 0000000000..5123025e2e
Binary files /dev/null and b/InvenTree/locale/vi/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/vi/LC_MESSAGES/django.po b/InvenTree/locale/vi/LC_MESSAGES/django.po
index c8e6c91052..20b427ee2e 100644
--- a/InvenTree/locale/vi/LC_MESSAGES/django.po
+++ b/InvenTree/locale/vi/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:28\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Vietnamese\n"
"Language: vi_VN\n"
@@ -33,260 +33,268 @@ msgstr ""
msgid "Enter date"
msgstr ""
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr ""
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr ""
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr ""
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr ""
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr ""
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr ""
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr ""
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr ""
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr ""
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr ""
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr ""
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr ""
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr ""
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr ""
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr ""
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr ""
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr ""
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr ""
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr ""
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr ""
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr ""
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr ""
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr ""
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr ""
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr ""
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr ""
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr ""
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr ""
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr ""
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr ""
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr ""
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr ""
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr ""
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr ""
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr ""
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr ""
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr ""
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr ""
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr ""
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr ""
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr ""
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr ""
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr ""
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr ""
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr ""
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr ""
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr ""
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr ""
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr ""
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr ""
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr ""
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr ""
@@ -302,196 +310,196 @@ msgstr ""
msgid "InvenTree system health checks failed"
msgstr ""
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr ""
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr ""
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr ""
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr ""
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr ""
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr ""
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr ""
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr ""
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr ""
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr ""
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr ""
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr ""
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr ""
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr ""
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr ""
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr ""
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr ""
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr ""
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr ""
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr ""
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr ""
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr ""
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr ""
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr ""
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr ""
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr ""
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr ""
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr ""
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr ""
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr ""
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr ""
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr ""
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr ""
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr ""
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr ""
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr ""
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr ""
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr ""
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr ""
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr ""
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr ""
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr ""
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr ""
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr ""
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr ""
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr ""
@@ -535,599 +543,574 @@ msgstr ""
msgid "Barcode associated with StockItem"
msgstr ""
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr ""
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr ""
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr ""
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr ""
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr ""
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr ""
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr ""
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr ""
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr ""
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr ""
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr ""
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr ""
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr ""
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr ""
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr ""
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr ""
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr ""
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr ""
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr ""
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr ""
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr ""
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr ""
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr ""
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr ""
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr ""
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr ""
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr ""
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr ""
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr ""
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr ""
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr ""
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr ""
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr ""
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr ""
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr ""
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr ""
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr ""
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr ""
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr ""
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr ""
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr ""
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr ""
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr ""
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr ""
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr ""
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr ""
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr ""
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr ""
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr ""
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr ""
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr ""
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr ""
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr ""
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr ""
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr ""
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr ""
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr ""
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr ""
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr ""
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr ""
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr ""
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr ""
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr ""
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr ""
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr ""
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr ""
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr ""
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr ""
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr ""
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
+#: build/tasks.py:92
+msgid "Stock required for build order"
msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr ""
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr ""
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr ""
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
msgstr ""
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr ""
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr ""
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr ""
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr ""
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr ""
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr ""
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
msgstr ""
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr ""
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr ""
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr ""
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr ""
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr ""
msgid "Required stock has not been fully allocated"
msgstr ""
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
+#: build/templates/build/detail.html:16
+msgid "Build Details"
msgstr ""
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr ""
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr ""
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr ""
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr ""
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr ""
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr ""
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr ""
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr ""
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr ""
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr ""
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr ""
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr ""
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr ""
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr ""
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr ""
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr ""
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr ""
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr ""
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr ""
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr ""
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr ""
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr ""
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr ""
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr ""
@@ -1396,45 +1362,28 @@ msgstr ""
msgid "Print Build Orders"
msgstr ""
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr ""
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr ""
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
msgstr ""
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
msgstr ""
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr ""
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
-msgstr ""
-
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr ""
-
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr ""
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
msgstr ""
#: build/views.py:76
@@ -1449,7 +1398,7 @@ msgstr ""
msgid "Maximum output quantity is "
msgstr ""
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr ""
@@ -1461,11 +1410,11 @@ msgstr ""
msgid "Delete Build Output"
msgstr ""
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr ""
@@ -1473,7 +1422,7 @@ msgstr ""
msgid "Build output does not match build"
msgstr ""
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr ""
@@ -1481,39 +1430,19 @@ msgstr ""
msgid "Build output deleted"
msgstr ""
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr ""
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr ""
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr ""
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr ""
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr ""
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr ""
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr ""
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr ""
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr ""
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr ""
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr ""
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr ""
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr ""
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr ""
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr ""
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr ""
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr ""
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr ""
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr ""
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr ""
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr ""
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr ""
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr ""
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr ""
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr ""
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr ""
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr ""
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr ""
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr ""
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr ""
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr ""
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr ""
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr ""
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr ""
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr ""
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr ""
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr ""
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr ""
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr ""
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr ""
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr ""
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr ""
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr ""
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr ""
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr ""
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr ""
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr ""
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr ""
-
-#: common/models.py:910
-msgid "Recent Part Count"
-msgstr ""
-
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
-msgstr ""
-
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr ""
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr ""
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr ""
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr ""
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr ""
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr ""
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr ""
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr ""
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr ""
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr ""
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr ""
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr ""
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr ""
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr ""
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr ""
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr ""
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr ""
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr ""
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr ""
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr ""
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr ""
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr ""
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr ""
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr ""
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr ""
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr ""
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr ""
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr ""
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr ""
@@ -2348,7 +2280,7 @@ msgstr ""
msgid "Link to external company information"
msgstr ""
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr ""
@@ -2376,8 +2308,8 @@ msgstr ""
msgid "Does this company manufacture parts?"
msgstr ""
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr ""
@@ -2385,8 +2317,8 @@ msgstr ""
msgid "Default currency used for this company"
msgstr ""
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr ""
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr ""
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr ""
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr ""
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr ""
@@ -2431,7 +2363,7 @@ msgstr ""
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr ""
@@ -2441,9 +2373,8 @@ msgstr ""
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr ""
@@ -2451,8 +2382,10 @@ msgstr ""
msgid "Parameter value"
msgstr ""
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr ""
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr ""
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr ""
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr ""
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr ""
msgid "Supplier part description"
msgstr ""
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr ""
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr ""
@@ -2525,7 +2458,7 @@ msgstr ""
msgid "Part packaging"
msgstr ""
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,46 +2466,42 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr ""
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr ""
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr ""
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr ""
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr ""
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr ""
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr ""
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr ""
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr ""
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
msgstr ""
#: company/templates/company/company_base.html:81
@@ -2583,145 +2512,140 @@ msgstr ""
msgid "Phone"
msgstr ""
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr ""
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr ""
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr ""
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr ""
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr ""
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr ""
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr ""
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr ""
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr ""
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr ""
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr ""
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr ""
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr ""
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr ""
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr ""
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr ""
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr ""
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr ""
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr ""
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr ""
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr ""
@@ -2729,227 +2653,223 @@ msgstr ""
msgid "Supplier List"
msgstr ""
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr ""
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr ""
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr ""
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr ""
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr ""
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr ""
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr ""
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr ""
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr ""
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr ""
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr ""
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr ""
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr ""
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr ""
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr ""
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr ""
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr ""
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr ""
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr ""
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr ""
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr ""
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr ""
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr ""
+
#: company/views.py:50
msgid "New Supplier"
msgstr ""
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr ""
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr ""
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr ""
@@ -2965,20 +2885,20 @@ msgstr ""
msgid "New Company"
msgstr ""
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr ""
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr ""
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr ""
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr ""
@@ -2994,7 +2914,7 @@ msgstr ""
msgid "Label description"
msgstr ""
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr ""
@@ -3051,240 +2971,236 @@ msgstr ""
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr ""
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr ""
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr ""
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr ""
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr ""
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr ""
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr ""
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr ""
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr ""
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr ""
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr ""
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr ""
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr ""
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr ""
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr ""
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr ""
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr ""
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr ""
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr ""
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr ""
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr ""
@@ -3869,7 +3781,7 @@ msgstr ""
msgid "Include part supplier data in exported BOM"
msgstr ""
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr ""
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr ""
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr ""
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr ""
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr ""
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr ""
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr ""
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr ""
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr ""
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr ""
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr ""
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr ""
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr ""
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr ""
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr ""
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr ""
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr ""
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr ""
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr ""
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr ""
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr ""
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr ""
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr ""
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr ""
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
msgstr ""
#: part/templates/part/category.html:38
-msgid "Create new part category"
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
msgstr ""
#: part/templates/part/category.html:44
-msgid "Edit part category"
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
msgstr ""
#: part/templates/part/category.html:49
-msgid "Delete part category"
+msgid "Delete Category"
msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
+#: part/templates/part/category.html:57
+msgid "Create new part category"
msgstr ""
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
+
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
+
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr ""
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr ""
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr ""
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr ""
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr ""
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr ""
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr ""
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr ""
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr ""
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr ""
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr ""
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr ""
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr ""
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr ""
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr ""
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr ""
@@ -4519,12 +4443,11 @@ msgstr ""
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr ""
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr ""
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr ""
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr ""
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr ""
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr ""
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr ""
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr ""
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr ""
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr ""
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr ""
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr ""
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr ""
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr ""
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr ""
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr ""
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr ""
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr ""
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr ""
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr ""
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr ""
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr ""
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr ""
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr ""
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr ""
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr ""
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr ""
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr ""
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr ""
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr ""
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr ""
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr ""
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr ""
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr ""
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr ""
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr ""
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr ""
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr ""
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr ""
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr ""
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr ""
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr ""
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr ""
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr ""
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr ""
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr ""
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr ""
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr ""
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr ""
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr ""
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr ""
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr ""
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr ""
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
msgstr ""
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
msgstr ""
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr ""
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr ""
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr ""
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr ""
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr ""
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr ""
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr ""
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr ""
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr ""
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr ""
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr ""
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr ""
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr ""
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr ""
msgid "Currency Settings"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr ""
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr ""
@@ -6207,112 +6139,28 @@ msgstr ""
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr ""
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr ""
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr ""
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr ""
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr ""
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr ""
@@ -6325,32 +6173,97 @@ msgstr ""
msgid "Report Settings"
msgstr ""
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr ""
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr ""
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr ""
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr ""
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr ""
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr ""
@@ -6359,138 +6272,154 @@ msgstr ""
msgid "Stock Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr ""
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr ""
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr ""
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr ""
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr ""
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr ""
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr ""
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr ""
-#: templates/InvenTree/settings/user.html:214
-msgid "Help the translation efforts!"
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
msgstr ""
#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
+msgid "Help the translation efforts!"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr ""
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
+msgstr ""
+
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
msgstr ""
#: templates/InvenTree/settings/user_homepage.html:9
@@ -6501,128 +6430,133 @@ msgstr ""
msgid "Label Settings"
msgstr ""
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr ""
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr ""
@@ -6738,7 +6747,7 @@ msgstr ""
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr ""
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr ""
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr ""
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr ""
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr ""
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr ""
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr ""
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr ""
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr ""
@@ -7137,97 +7218,97 @@ msgstr ""
msgid "Delete Manufacturer Part"
msgstr ""
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr ""
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr ""
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr ""
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr ""
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr ""
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr ""
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr ""
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr ""
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr ""
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr ""
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr ""
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr ""
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr ""
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr ""
msgid "Select Label Template"
msgstr ""
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr ""
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr ""
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr ""
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr ""
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr ""
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr ""
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr ""
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr ""
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr ""
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr ""
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr ""
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr ""
-#: templates/js/translated/part.js:435
-msgid "Starred part"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr ""
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr ""
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr ""
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr ""
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr ""
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr ""
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr ""
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr ""
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr ""
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr ""
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr ""
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr ""
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr ""
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr ""
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr ""
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr ""
msgid "Important dates"
msgstr ""
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr ""
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr ""
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr ""
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr ""
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr ""
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr ""
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.mo b/InvenTree/locale/zh/LC_MESSAGES/django.mo
index d02b517fab..ca6e3887e3 100644
Binary files a/InvenTree/locale/zh/LC_MESSAGES/django.mo and b/InvenTree/locale/zh/LC_MESSAGES/django.mo differ
diff --git a/InvenTree/locale/zh/LC_MESSAGES/django.po b/InvenTree/locale/zh/LC_MESSAGES/django.po
index 89b8b3fadc..1017d54ef0 100644
--- a/InvenTree/locale/zh/LC_MESSAGES/django.po
+++ b/InvenTree/locale/zh/LC_MESSAGES/django.po
@@ -2,8 +2,8 @@ msgid ""
msgstr ""
"Project-Id-Version: inventree\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2021-10-11 06:21+0000\n"
-"PO-Revision-Date: 2021-10-11 06:29\n"
+"POT-Creation-Date: 2021-11-25 04:46+0000\n"
+"PO-Revision-Date: 2021-11-25 05:07\n"
"Last-Translator: \n"
"Language-Team: Chinese Simplified\n"
"Language: zh_CN\n"
@@ -33,260 +33,268 @@ msgstr "未找到指定操作"
msgid "Enter date"
msgstr "输入日期"
-#: InvenTree/forms.py:116 build/forms.py:102 build/forms.py:123
-#: build/forms.py:145 build/forms.py:173 build/forms.py:215 order/forms.py:27
-#: order/forms.py:38 order/forms.py:49 order/forms.py:60 order/forms.py:71
-#: part/forms.py:108 templates/account/email_confirm.html:20
-#: templates/js/translated/forms.js:564
+#: InvenTree/forms.py:120 build/forms.py:48 build/forms.py:69 build/forms.py:93
+#: order/forms.py:26 order/forms.py:37 order/forms.py:48 order/forms.py:59
+#: order/forms.py:70 part/forms.py:108 templates/account/email_confirm.html:20
+#: templates/js/translated/forms.js:594
msgid "Confirm"
msgstr "确认"
-#: InvenTree/forms.py:132
+#: InvenTree/forms.py:136
msgid "Confirm delete"
msgstr "确认删除"
-#: InvenTree/forms.py:133
+#: InvenTree/forms.py:137
msgid "Confirm item deletion"
msgstr "确认删除"
-#: InvenTree/forms.py:164
+#: InvenTree/forms.py:168
msgid "Enter password"
msgstr "输入密码"
-#: InvenTree/forms.py:165
+#: InvenTree/forms.py:169
msgid "Enter new password"
msgstr "输入新密码"
-#: InvenTree/forms.py:172
+#: InvenTree/forms.py:176
msgid "Confirm password"
msgstr "确认密码"
-#: InvenTree/forms.py:173
+#: InvenTree/forms.py:177
msgid "Confirm new password"
msgstr "确认新密码"
-#: InvenTree/forms.py:205
+#: InvenTree/forms.py:209
msgid "Select Category"
msgstr "选择分类"
-#: InvenTree/forms.py:226
-msgid "E-mail (again)"
-msgstr ""
-
#: InvenTree/forms.py:230
-msgid "E-mail address confirmation"
+msgid "Email (again)"
msgstr ""
-#: InvenTree/forms.py:250
+#: InvenTree/forms.py:234
+msgid "Email address confirmation"
+msgstr ""
+
+#: InvenTree/forms.py:254
msgid "You must type the same email each time."
msgstr ""
-#: InvenTree/helpers.py:401
+#: InvenTree/helpers.py:430
#, python-brace-format
msgid "Duplicate serial: {n}"
msgstr "重复的序列号: {n}"
-#: InvenTree/helpers.py:408 order/models.py:315 order/models.py:437
-#: stock/views.py:1340
+#: InvenTree/helpers.py:437 order/models.py:318 order/models.py:440
+#: stock/views.py:1264
msgid "Invalid quantity provided"
msgstr "提供的数量无效"
-#: InvenTree/helpers.py:411
+#: InvenTree/helpers.py:440
msgid "Empty serial number string"
msgstr "空序列号字符串"
-#: InvenTree/helpers.py:433 InvenTree/helpers.py:436 InvenTree/helpers.py:439
-#: InvenTree/helpers.py:464
+#: InvenTree/helpers.py:462 InvenTree/helpers.py:465 InvenTree/helpers.py:468
+#: InvenTree/helpers.py:493
#, python-brace-format
msgid "Invalid group: {g}"
msgstr "无效的群组: {g}"
-#: InvenTree/helpers.py:469
+#: InvenTree/helpers.py:498
#, python-brace-format
msgid "Duplicate serial: {g}"
msgstr "重复的序列号: {g}"
-#: InvenTree/helpers.py:477
+#: InvenTree/helpers.py:506
msgid "No serial numbers found"
msgstr "未找到序列号"
-#: InvenTree/helpers.py:481
+#: InvenTree/helpers.py:510
#, python-brace-format
msgid "Number of unique serial number ({s}) must match quantity ({q})"
msgstr "唯一序列号 ({s}) 必须匹配数量 ({q})"
-#: InvenTree/models.py:66 stock/models.py:1823
+#: InvenTree/models.py:109 stock/models.py:1874
msgid "Attachment"
msgstr "附件"
-#: InvenTree/models.py:67
+#: InvenTree/models.py:110
msgid "Select file to attach"
msgstr "选择附件"
-#: InvenTree/models.py:69 templates/js/translated/attachment.js:87
+#: InvenTree/models.py:112 templates/js/translated/attachment.js:91
msgid "Comment"
msgstr "注释"
-#: InvenTree/models.py:69
+#: InvenTree/models.py:112
msgid "File comment"
msgstr "文件注释"
-#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055
-#: common/models.py:1056 part/models.py:2055
+#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1185
+#: common/models.py:1186 part/models.py:2205 part/models.py:2225
#: report/templates/report/inventree_test_report_base.html:91
-#: templates/js/translated/stock.js:1669
+#: templates/js/translated/stock.js:2054
msgid "User"
msgstr "用户"
-#: InvenTree/models.py:79
+#: InvenTree/models.py:122
msgid "upload date"
msgstr "上传日期"
-#: InvenTree/models.py:99
+#: InvenTree/models.py:142
msgid "Filename must not be empty"
msgstr "文件名不能为空!"
-#: InvenTree/models.py:122
+#: InvenTree/models.py:165
msgid "Invalid attachment directory"
msgstr "非法的附件目录"
-#: InvenTree/models.py:132
+#: InvenTree/models.py:175
#, python-brace-format
msgid "Filename contains illegal character '{c}'"
msgstr "文件名包含非法字符 '{c}'"
-#: InvenTree/models.py:135
+#: InvenTree/models.py:178
msgid "Filename missing extension"
msgstr "缺少文件名扩展"
-#: InvenTree/models.py:142
+#: InvenTree/models.py:185
msgid "Attachment with this filename already exists"
msgstr "使用此文件名的附件已存在"
-#: InvenTree/models.py:149
+#: InvenTree/models.py:192
msgid "Error renaming file"
msgstr "重命名文件出错"
-#: InvenTree/models.py:184
+#: InvenTree/models.py:227
msgid "Invalid choice"
msgstr "选择无效"
-#: InvenTree/models.py:200 InvenTree/models.py:201 company/models.py:415
-#: label/models.py:112 part/models.py:659 part/models.py:2216
-#: part/templates/part/part_base.html:241 report/models.py:181
-#: templates/js/translated/company.js:637 templates/js/translated/part.js:477
-#: templates/js/translated/part.js:614 templates/js/translated/part.js:1141
-#: templates/js/translated/stock.js:1462
+#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415
+#: label/models.py:112 part/models.py:741 part/models.py:2389
+#: part/templates/part/detail.html:25 report/models.py:181
+#: templates/InvenTree/settings/settings.html:259
+#: templates/js/translated/company.js:638 templates/js/translated/part.js:499
+#: templates/js/translated/part.js:636 templates/js/translated/part.js:1384
+#: templates/js/translated/stock.js:1847
msgid "Name"
msgstr "名称"
-#: InvenTree/models.py:207 build/models.py:189
-#: build/templates/build/detail.html:24 company/models.py:354
-#: company/models.py:570 company/templates/company/manufacturer_part.html:76
-#: company/templates/company/supplier_part.html:75 label/models.py:119
-#: order/models.py:158 part/models.py:682
-#: part/templates/part/part_base.html:246
+#: InvenTree/models.py:250 build/models.py:207
+#: build/templates/build/detail.html:25 company/models.py:354
+#: company/models.py:570 company/templates/company/manufacturer_part.html:80
+#: company/templates/company/supplier_part.html:81 label/models.py:119
+#: order/models.py:161 part/models.py:764 part/templates/part/detail.html:30
#: part/templates/part/set_category.html:14 report/models.py:194
#: report/models.py:551 report/models.py:590
#: report/templates/report/inventree_build_order_base.html:118
-#: templates/InvenTree/settings/header.html:9
-#: templates/js/translated/bom.js:249 templates/js/translated/build.js:1217
-#: templates/js/translated/build.js:1505 templates/js/translated/company.js:344
-#: templates/js/translated/company.js:547
-#: templates/js/translated/company.js:836 templates/js/translated/order.js:672
-#: templates/js/translated/order.js:832 templates/js/translated/order.js:1056
-#: templates/js/translated/part.js:536 templates/js/translated/part.js:724
-#: templates/js/translated/part.js:913 templates/js/translated/part.js:1153
-#: templates/js/translated/part.js:1221 templates/js/translated/stock.js:819
-#: templates/js/translated/stock.js:1474 templates/js/translated/stock.js:1519
+#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:215
+#: templates/js/translated/bom.js:428 templates/js/translated/build.js:1621
+#: templates/js/translated/company.js:345
+#: templates/js/translated/company.js:548
+#: templates/js/translated/company.js:837 templates/js/translated/order.js:673
+#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069
+#: templates/js/translated/part.js:558 templates/js/translated/part.js:752
+#: templates/js/translated/part.js:837 templates/js/translated/part.js:1007
+#: templates/js/translated/part.js:1403 templates/js/translated/part.js:1472
+#: templates/js/translated/stock.js:1121 templates/js/translated/stock.js:1859
+#: templates/js/translated/stock.js:1904
msgid "Description"
msgstr "描述信息"
-#: InvenTree/models.py:208
+#: InvenTree/models.py:251
msgid "Description (optional)"
msgstr "描述 (可选)"
-#: InvenTree/models.py:216
+#: InvenTree/models.py:259
msgid "parent"
msgstr "上级项"
-#: InvenTree/serializers.py:55 part/models.py:2475
+#: InvenTree/serializers.py:62 part/models.py:2674
msgid "Must be a valid number"
msgstr "必须是有效数字"
-#: InvenTree/serializers.py:244
+#: InvenTree/serializers.py:251
msgid "Filename"
msgstr "文件名"
-#: InvenTree/settings.py:529
+#: InvenTree/settings.py:664
msgid "German"
msgstr "德语"
-#: InvenTree/settings.py:530
+#: InvenTree/settings.py:665
msgid "Greek"
msgstr "希腊语"
-#: InvenTree/settings.py:531
+#: InvenTree/settings.py:666
msgid "English"
msgstr "英语"
-#: InvenTree/settings.py:532
+#: InvenTree/settings.py:667
msgid "Spanish"
msgstr "西班牙语"
-#: InvenTree/settings.py:533
+#: InvenTree/settings.py:668
+msgid "Spanish (Mexican)"
+msgstr ""
+
+#: InvenTree/settings.py:669
msgid "French"
msgstr "法语"
-#: InvenTree/settings.py:534
+#: InvenTree/settings.py:670
msgid "Hebrew"
msgstr "希伯来语"
-#: InvenTree/settings.py:535
+#: InvenTree/settings.py:671
msgid "Italian"
msgstr "意大利语"
-#: InvenTree/settings.py:536
+#: InvenTree/settings.py:672
msgid "Japanese"
msgstr "日语"
-#: InvenTree/settings.py:537
+#: InvenTree/settings.py:673
msgid "Korean"
msgstr "韩语"
-#: InvenTree/settings.py:538
+#: InvenTree/settings.py:674
msgid "Dutch"
msgstr "荷兰语"
-#: InvenTree/settings.py:539
+#: InvenTree/settings.py:675
msgid "Norwegian"
msgstr "挪威语"
-#: InvenTree/settings.py:540
+#: InvenTree/settings.py:676
msgid "Polish"
msgstr "波兰语"
-#: InvenTree/settings.py:541
+#: InvenTree/settings.py:677
+msgid "Portugese"
+msgstr ""
+
+#: InvenTree/settings.py:678
msgid "Russian"
msgstr "俄语"
-#: InvenTree/settings.py:542
+#: InvenTree/settings.py:679
msgid "Swedish"
msgstr "瑞典语"
-#: InvenTree/settings.py:543
+#: InvenTree/settings.py:680
msgid "Thai"
msgstr "泰语"
-#: InvenTree/settings.py:544
+#: InvenTree/settings.py:681
msgid "Turkish"
msgstr "土耳其语"
-#: InvenTree/settings.py:545
+#: InvenTree/settings.py:682
msgid "Vietnamese"
msgstr "越南语"
-#: InvenTree/settings.py:546
+#: InvenTree/settings.py:683
msgid "Chinese"
msgstr "中文(简体)"
@@ -302,196 +310,196 @@ msgstr "未配置电子邮件后端"
msgid "InvenTree system health checks failed"
msgstr "InventTree系统健康检查失败"
-#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:145
-#: InvenTree/status_codes.py:314
+#: InvenTree/status_codes.py:101 InvenTree/status_codes.py:142
+#: InvenTree/status_codes.py:311
msgid "Pending"
msgstr "待定"
-#: InvenTree/status_codes.py:105
+#: InvenTree/status_codes.py:102
msgid "Placed"
msgstr "已添加"
-#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:317
+#: InvenTree/status_codes.py:103 InvenTree/status_codes.py:314
msgid "Complete"
msgstr "完成"
-#: InvenTree/status_codes.py:107 InvenTree/status_codes.py:147
-#: InvenTree/status_codes.py:316
+#: InvenTree/status_codes.py:104 InvenTree/status_codes.py:144
+#: InvenTree/status_codes.py:313
msgid "Cancelled"
msgstr "已取消"
-#: InvenTree/status_codes.py:108 InvenTree/status_codes.py:148
-#: InvenTree/status_codes.py:190
+#: InvenTree/status_codes.py:105 InvenTree/status_codes.py:145
+#: InvenTree/status_codes.py:187
msgid "Lost"
msgstr "丢失"
-#: InvenTree/status_codes.py:109 InvenTree/status_codes.py:149
-#: InvenTree/status_codes.py:192
+#: InvenTree/status_codes.py:106 InvenTree/status_codes.py:146
+#: InvenTree/status_codes.py:189
msgid "Returned"
msgstr "已退回"
-#: InvenTree/status_codes.py:146
-#: order/templates/order/sales_order_base.html:131
+#: InvenTree/status_codes.py:143
+#: order/templates/order/sales_order_base.html:147
msgid "Shipped"
msgstr "已发货"
-#: InvenTree/status_codes.py:186
+#: InvenTree/status_codes.py:183
msgid "OK"
msgstr "OK"
-#: InvenTree/status_codes.py:187
+#: InvenTree/status_codes.py:184
msgid "Attention needed"
msgstr "需要关注"
-#: InvenTree/status_codes.py:188
+#: InvenTree/status_codes.py:185
msgid "Damaged"
msgstr "破损"
-#: InvenTree/status_codes.py:189
+#: InvenTree/status_codes.py:186
msgid "Destroyed"
msgstr "已销毁"
-#: InvenTree/status_codes.py:191
+#: InvenTree/status_codes.py:188
msgid "Rejected"
msgstr "Rejected"
-#: InvenTree/status_codes.py:272
+#: InvenTree/status_codes.py:269
msgid "Legacy stock tracking entry"
msgstr "旧库存跟踪条目"
-#: InvenTree/status_codes.py:274
+#: InvenTree/status_codes.py:271
msgid "Stock item created"
msgstr "库存项已创建"
-#: InvenTree/status_codes.py:276
+#: InvenTree/status_codes.py:273
msgid "Edited stock item"
msgstr "已编辑库存项"
-#: InvenTree/status_codes.py:277
+#: InvenTree/status_codes.py:274
msgid "Assigned serial number"
msgstr "已分配序列号"
-#: InvenTree/status_codes.py:279
+#: InvenTree/status_codes.py:276
msgid "Stock counted"
msgstr "库存计数"
-#: InvenTree/status_codes.py:280
+#: InvenTree/status_codes.py:277
msgid "Stock manually added"
msgstr "已手动添加库存"
-#: InvenTree/status_codes.py:281
+#: InvenTree/status_codes.py:278
msgid "Stock manually removed"
msgstr "库存手动删除"
-#: InvenTree/status_codes.py:283
+#: InvenTree/status_codes.py:280
msgid "Location changed"
msgstr "仓储地点已更改"
-#: InvenTree/status_codes.py:285
+#: InvenTree/status_codes.py:282
msgid "Installed into assembly"
msgstr "安装到组装中"
-#: InvenTree/status_codes.py:286
+#: InvenTree/status_codes.py:283
msgid "Removed from assembly"
msgstr "已从组装中删除"
-#: InvenTree/status_codes.py:288
+#: InvenTree/status_codes.py:285
msgid "Installed component item"
msgstr "已安装组件项"
-#: InvenTree/status_codes.py:289
+#: InvenTree/status_codes.py:286
msgid "Removed component item"
msgstr "已删除组件项"
-#: InvenTree/status_codes.py:291
+#: InvenTree/status_codes.py:288
msgid "Split from parent item"
msgstr "从父项拆分"
-#: InvenTree/status_codes.py:292
+#: InvenTree/status_codes.py:289
msgid "Split child item"
msgstr "拆分子项"
-#: InvenTree/status_codes.py:294 templates/js/translated/table_filters.js:186
+#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208
msgid "Sent to customer"
msgstr "发送给客户"
-#: InvenTree/status_codes.py:295
+#: InvenTree/status_codes.py:292
msgid "Returned from customer"
msgstr "从客户退货"
-#: InvenTree/status_codes.py:297
+#: InvenTree/status_codes.py:294
msgid "Build order output created"
msgstr "已创建生产订单输出"
-#: InvenTree/status_codes.py:298
+#: InvenTree/status_codes.py:295
msgid "Build order output completed"
msgstr "生产订单输出已完成"
-#: InvenTree/status_codes.py:300
+#: InvenTree/status_codes.py:297
msgid "Received against purchase order"
msgstr "收到定购单"
-#: InvenTree/status_codes.py:315
+#: InvenTree/status_codes.py:312
msgid "Production"
msgstr "生产中"
-#: InvenTree/validators.py:22
+#: InvenTree/validators.py:23
msgid "Not a valid currency code"
msgstr "不是有效的货币代码"
-#: InvenTree/validators.py:50
+#: InvenTree/validators.py:51
msgid "Invalid character in part name"
msgstr "商品名称中存在无效字符"
-#: InvenTree/validators.py:63
+#: InvenTree/validators.py:64
#, python-brace-format
msgid "IPN must match regex pattern {pat}"
msgstr "IPN 必须匹配正则表达式 {pat}"
-#: InvenTree/validators.py:77 InvenTree/validators.py:91
-#: InvenTree/validators.py:105
+#: InvenTree/validators.py:78 InvenTree/validators.py:92
+#: InvenTree/validators.py:106
#, python-brace-format
msgid "Reference must match pattern {pattern}"
msgstr "引用必须匹配模板 {pattern}"
-#: InvenTree/validators.py:113
+#: InvenTree/validators.py:114
#, python-brace-format
msgid "Illegal character in name ({x})"
msgstr "名称中存在非法字符 ({x})"
-#: InvenTree/validators.py:132 InvenTree/validators.py:148
+#: InvenTree/validators.py:133 InvenTree/validators.py:149
msgid "Overage value must not be negative"
msgstr "备损值不能为负数"
-#: InvenTree/validators.py:150
+#: InvenTree/validators.py:151
msgid "Overage must not exceed 100%"
msgstr "备损不能超过 100%"
-#: InvenTree/validators.py:157
+#: InvenTree/validators.py:158
msgid "Overage must be an integer value or a percentage"
msgstr "备损必须是整数值或百分比"
-#: InvenTree/views.py:616
+#: InvenTree/views.py:536
msgid "Delete Item"
msgstr "删除项"
-#: InvenTree/views.py:665
+#: InvenTree/views.py:585
msgid "Check box to confirm item deletion"
msgstr "选中方框以确认项目删除"
-#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18
+#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17
msgid "Edit User Information"
msgstr "编辑用户信息"
-#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22
+#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21
msgid "Set Password"
msgstr "设置密码"
-#: InvenTree/views.py:710
+#: InvenTree/views.py:630
msgid "Password fields must match"
msgstr "密码字段必须相匹配。"
-#: InvenTree/views.py:954 templates/navbar.html:97
+#: InvenTree/views.py:863 templates/navbar.html:101
msgid "System Information"
msgstr "系统信息"
@@ -535,599 +543,574 @@ msgstr "条码哈希值已经匹配库存项目"
msgid "Barcode associated with StockItem"
msgstr "与库存项关联的条形码"
-#: build/api.py:213
-msgid "Matching build order does not exist"
-msgstr ""
-
-#: build/forms.py:37
-msgid "Build Order reference"
-msgstr "相关生产订单"
-
-#: build/forms.py:38
-msgid "Order target date"
-msgstr "订单预计日期"
-
-#: build/forms.py:42 build/templates/build/build_base.html:146
-#: build/templates/build/detail.html:124
-#: order/templates/order/order_base.html:124
-#: order/templates/order/sales_order_base.html:124
-#: report/templates/report/inventree_build_order_base.html:126
-#: templates/js/translated/build.js:1288 templates/js/translated/order.js:689
-#: templates/js/translated/order.js:1074
-msgid "Target Date"
-msgstr "预计日期"
-
-#: build/forms.py:43 build/models.py:279
-msgid "Target date for build completion. Build will be overdue after this date."
-msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
-
-#: build/forms.py:48 build/forms.py:90 build/models.py:1281
-#: build/templates/build/allocation_card.html:23
-#: build/templates/build/build_base.html:133
-#: build/templates/build/detail.html:34 common/models.py:1087
-#: company/forms.py:42 company/templates/company/supplier_part.html:226
-#: order/forms.py:101 order/forms.py:123 order/models.py:720
-#: order/models.py:982 order/templates/order/order_wizard/match_parts.html:30
-#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:249
-#: part/forms.py:265 part/forms.py:281 part/models.py:2377
+#: build/forms.py:36 build/models.py:1283
+#: build/templates/build/build_base.html:124
+#: build/templates/build/detail.html:35 common/models.py:1225
+#: company/forms.py:42 company/templates/company/supplier_part.html:251
+#: order/forms.py:102 order/models.py:729 order/models.py:991
+#: order/templates/order/order_wizard/match_parts.html:30
+#: order/templates/order/order_wizard/select_parts.html:34 part/forms.py:223
+#: part/forms.py:239 part/forms.py:255 part/models.py:2576
#: part/templates/part/bom_upload/match_parts.html:31
-#: part/templates/part/detail.html:944 part/templates/part/detail.html:1030
+#: part/templates/part/detail.html:1113 part/templates/part/detail.html:1199
#: part/templates/part/part_pricing.html:16
#: report/templates/report/inventree_build_order_base.html:114
#: report/templates/report/inventree_po_report.html:91
#: report/templates/report/inventree_so_report.html:91
#: report/templates/report/inventree_test_report_base.html:77
-#: stock/forms.py:140 stock/templates/stock/item_base.html:269
-#: stock/templates/stock/stock_adjust.html:18
-#: templates/js/translated/barcode.js:386 templates/js/translated/bom.js:264
-#: templates/js/translated/build.js:314 templates/js/translated/build.js:638
-#: templates/js/translated/build.js:977 templates/js/translated/build.js:1515
-#: templates/js/translated/model_renderers.js:74
-#: templates/js/translated/order.js:868 templates/js/translated/order.js:1170
-#: templates/js/translated/order.js:1248 templates/js/translated/order.js:1255
-#: templates/js/translated/order.js:1344 templates/js/translated/order.js:1444
-#: templates/js/translated/part.js:1364 templates/js/translated/part.js:1487
-#: templates/js/translated/part.js:1565 templates/js/translated/stock.js:1654
-#: templates/js/translated/stock.js:1829
+#: stock/forms.py:156 stock/serializers.py:286
+#: stock/templates/stock/item_base.html:256
+#: templates/js/translated/barcode.js:385 templates/js/translated/bom.js:443
+#: templates/js/translated/build.js:235 templates/js/translated/build.js:435
+#: templates/js/translated/build.js:629 templates/js/translated/build.js:639
+#: templates/js/translated/build.js:1015 templates/js/translated/build.js:1362
+#: templates/js/translated/model_renderers.js:99
+#: templates/js/translated/order.js:870 templates/js/translated/order.js:1183
+#: templates/js/translated/order.js:1261 templates/js/translated/order.js:1268
+#: templates/js/translated/order.js:1357 templates/js/translated/order.js:1457
+#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738
+#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:347
+#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141
msgid "Quantity"
msgstr "数量"
-#: build/forms.py:49
-msgid "Number of items to build"
-msgstr "要生产的项目数量"
-
-#: build/forms.py:91
+#: build/forms.py:37
msgid "Enter quantity for build output"
msgstr "输入生产产出数量"
-#: build/forms.py:95 order/forms.py:95 stock/forms.py:83
+#: build/forms.py:41 order/forms.py:96 stock/forms.py:95
+#: stock/serializers.py:307 templates/js/translated/stock.js:194
+#: templates/js/translated/stock.js:348
msgid "Serial Numbers"
msgstr "序列号"
-#: build/forms.py:97
+#: build/forms.py:43
msgid "Enter serial numbers for build outputs"
msgstr "输入生产产出的序列号"
-#: build/forms.py:103
+#: build/forms.py:49
msgid "Confirm creation of build output"
msgstr "确认创建生产产出"
-#: build/forms.py:124
+#: build/forms.py:70
msgid "Confirm deletion of build output"
msgstr "确认删除生产产出"
-#: build/forms.py:145
-msgid "Confirm unallocation of stock"
-msgstr "确认取消分配库存"
-
-#: build/forms.py:174
+#: build/forms.py:94
msgid "Mark build as complete"
msgstr "标记生产已完成"
-#: build/forms.py:198 order/serializers.py:217 order/serializers.py:284
-#: stock/forms.py:280 stock/serializers.py:553
-#: stock/templates/stock/item_base.html:299
-#: stock/templates/stock/stock_adjust.html:17
-#: templates/js/translated/barcode.js:385
-#: templates/js/translated/barcode.js:555 templates/js/translated/build.js:299
-#: templates/js/translated/build.js:650 templates/js/translated/order.js:347
-#: templates/js/translated/order.js:1155 templates/js/translated/order.js:1263
-#: templates/js/translated/order.js:1269 templates/js/translated/part.js:179
-#: templates/js/translated/stock.js:183 templates/js/translated/stock.js:921
-#: templates/js/translated/stock.js:1546
-msgid "Location"
-msgstr "地点"
-
-#: build/forms.py:199
-msgid "Location of completed parts"
-msgstr "已完成商品所在仓储地点"
-
-#: build/forms.py:203 build/templates/build/build_base.html:138
-#: build/templates/build/detail.html:62 order/models.py:563
-#: order/serializers.py:238 stock/templates/stock/item_base.html:422
-#: templates/js/translated/barcode.js:141 templates/js/translated/build.js:1251
-#: templates/js/translated/order.js:430 templates/js/translated/order.js:676
-#: templates/js/translated/order.js:1061 templates/js/translated/stock.js:896
-#: templates/js/translated/stock.js:1623 templates/js/translated/stock.js:1845
-msgid "Status"
-msgstr "状态"
-
-#: build/forms.py:204
-msgid "Build output stock status"
-msgstr "生产产出库存状态"
-
-#: build/forms.py:211
-msgid "Confirm incomplete"
-msgstr "确认未完成"
-
-#: build/forms.py:212
-msgid "Confirm completion with incomplete stock allocation"
-msgstr "确认以未完成库存分配方式完成"
-
-#: build/forms.py:215
-msgid "Confirm build completion"
-msgstr "确认生产完成"
-
-#: build/forms.py:240
+#: build/forms.py:107
msgid "Confirm cancel"
msgstr "确认取消"
-#: build/forms.py:240 build/views.py:65
+#: build/forms.py:107 build/views.py:65
msgid "Confirm build cancellation"
msgstr "确认生产取消"
-#: build/models.py:115
+#: build/models.py:133
msgid "Invalid choice for parent build"
msgstr "上级生产选项无效"
-#: build/models.py:119 build/templates/build/build_base.html:9
-#: build/templates/build/build_base.html:73
+#: build/models.py:137 build/templates/build/build_base.html:9
+#: build/templates/build/build_base.html:27
#: report/templates/report/inventree_build_order_base.html:106
-#: templates/js/translated/build.js:276
+#: templates/js/translated/build.js:397
msgid "Build Order"
msgstr "生产订单"
-#: build/models.py:120 build/templates/build/index.html:8
-#: build/templates/build/index.html:15
-#: order/templates/order/sales_order_detail.html:34
-#: order/templates/order/so_navbar.html:19
-#: order/templates/order/so_navbar.html:22 part/templates/part/navbar.html:50
-#: part/templates/part/navbar.html:53 templates/InvenTree/index.html:229
-#: templates/InvenTree/search.html:171
-#: templates/InvenTree/settings/navbar.html:113
-#: templates/InvenTree/settings/navbar.html:115 users/models.py:44
+#: build/models.py:138 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:42
+#: order/templates/order/so_sidebar.html:7
+#: part/templates/part/part_sidebar.html:22 templates/InvenTree/index.html:221
+#: templates/InvenTree/search.html:145
+#: templates/InvenTree/settings/sidebar.html:42 users/models.py:44
msgid "Build Orders"
msgstr "生产订单"
-#: build/models.py:180
+#: build/models.py:198
msgid "Build Order Reference"
msgstr "相关生产订单"
-#: build/models.py:181 order/models.py:246 order/models.py:547
-#: order/models.py:727 part/models.py:2386
+#: build/models.py:199 order/models.py:249 order/models.py:556
+#: order/models.py:736 part/models.py:2585
#: part/templates/part/bom_upload/match_parts.html:30
#: report/templates/report/inventree_po_report.html:92
#: report/templates/report/inventree_so_report.html:92
-#: templates/js/translated/bom.js:256 templates/js/translated/build.js:734
-#: templates/js/translated/build.js:1509 templates/js/translated/order.js:863
-#: templates/js/translated/order.js:1438
+#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119
+#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451
msgid "Reference"
msgstr "引用"
-#: build/models.py:192
+#: build/models.py:210
msgid "Brief description of the build"
msgstr "生产的简短描述."
-#: build/models.py:201 build/templates/build/build_base.html:163
-#: build/templates/build/detail.html:80
+#: build/models.py:219 build/templates/build/build_base.html:156
+#: build/templates/build/detail.html:88
msgid "Parent Build"
msgstr "上级生产"
-#: build/models.py:202
+#: build/models.py:220
msgid "BuildOrder to which this build is allocated"
msgstr "此次生产匹配的订单"
-#: build/models.py:207 build/templates/build/build_base.html:128
-#: build/templates/build/detail.html:29 company/models.py:705
-#: order/models.py:780 order/models.py:851
-#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:298
-#: part/models.py:2000 part/models.py:2016 part/models.py:2035
-#: part/models.py:2053 part/models.py:2132 part/models.py:2254
-#: part/models.py:2361 part/templates/part/detail.html:199
+#: build/models.py:225 build/templates/build/build_base.html:119
+#: build/templates/build/detail.html:30 company/models.py:705
+#: order/models.py:789 order/models.py:860
+#: order/templates/order/order_wizard/select_parts.html:32 part/models.py:357
+#: part/models.py:2151 part/models.py:2167 part/models.py:2186
+#: part/models.py:2203 part/models.py:2305 part/models.py:2427
+#: part/models.py:2560 part/models.py:2867
#: part/templates/part/part_app_base.html:8
#: part/templates/part/part_pricing.html:12
#: part/templates/part/set_category.html:13
#: report/templates/report/inventree_build_order_base.html:110
#: report/templates/report/inventree_po_report.html:90
#: report/templates/report/inventree_so_report.html:90
-#: templates/InvenTree/search.html:112 templates/js/translated/barcode.js:384
-#: templates/js/translated/bom.js:222 templates/js/translated/build.js:611
-#: templates/js/translated/build.js:974 templates/js/translated/build.js:1222
-#: templates/js/translated/build.js:1482 templates/js/translated/company.js:488
-#: templates/js/translated/company.js:745 templates/js/translated/order.js:425
-#: templates/js/translated/order.js:817 templates/js/translated/order.js:1422
-#: templates/js/translated/part.js:705 templates/js/translated/part.js:875
-#: templates/js/translated/stock.js:181 templates/js/translated/stock.js:776
-#: templates/js/translated/stock.js:1817
+#: templates/InvenTree/search.html:86
+#: templates/email/build_order_required_stock.html:17
+#: templates/email/low_stock_notification.html:16
+#: templates/js/translated/barcode.js:383 templates/js/translated/bom.js:214
+#: templates/js/translated/bom.js:393 templates/js/translated/build.js:620
+#: templates/js/translated/build.js:988 templates/js/translated/build.js:1359
+#: templates/js/translated/build.js:1626 templates/js/translated/company.js:489
+#: templates/js/translated/company.js:746 templates/js/translated/order.js:426
+#: templates/js/translated/order.js:818 templates/js/translated/order.js:1435
+#: templates/js/translated/part.js:737 templates/js/translated/part.js:818
+#: templates/js/translated/part.js:985 templates/js/translated/stock.js:478
+#: templates/js/translated/stock.js:1078 templates/js/translated/stock.js:2129
msgid "Part"
msgstr "商品"
-#: build/models.py:215
+#: build/models.py:233
msgid "Select part to build"
msgstr "选择要生产的商品"
-#: build/models.py:220
+#: build/models.py:238
msgid "Sales Order Reference"
msgstr "相关销售订单"
-#: build/models.py:224
+#: build/models.py:242
msgid "SalesOrder to which this build is allocated"
msgstr "此次生产匹配的销售订单"
-#: build/models.py:229 templates/js/translated/build.js:962
+#: build/models.py:247 templates/js/translated/build.js:1347
msgid "Source Location"
msgstr "来源地点"
-#: build/models.py:233
+#: build/models.py:251
msgid "Select location to take stock from for this build (leave blank to take from any stock location)"
msgstr ""
-#: build/models.py:238
+#: build/models.py:256
msgid "Destination Location"
msgstr "目标地点"
-#: build/models.py:242
+#: build/models.py:260
msgid "Select location where the completed items will be stored"
msgstr "选择已完成项目仓储地点"
-#: build/models.py:246
+#: build/models.py:264
msgid "Build Quantity"
msgstr "生产数量"
-#: build/models.py:249
+#: build/models.py:267
msgid "Number of stock items to build"
msgstr "要生产的项目数量"
-#: build/models.py:253
+#: build/models.py:271
msgid "Completed items"
msgstr "已完成项目"
-#: build/models.py:255
+#: build/models.py:273
msgid "Number of stock items which have been completed"
msgstr "已完成的库存项目数量"
-#: build/models.py:259 part/templates/part/part_base.html:198
+#: build/models.py:277 part/templates/part/part_base.html:216
msgid "Build Status"
msgstr "生产状态"
-#: build/models.py:263
+#: build/models.py:281
msgid "Build status code"
msgstr "生产状态代码"
-#: build/models.py:267 stock/models.py:513
+#: build/models.py:285 stock/models.py:544
msgid "Batch Code"
msgstr "批量代码"
-#: build/models.py:271
+#: build/models.py:289
msgid "Batch code for this build output"
msgstr "此生产产出的批量代码"
-#: build/models.py:274 order/models.py:162 part/models.py:854
-#: part/templates/part/part_base.html:272 templates/js/translated/order.js:1069
+#: build/models.py:292 order/models.py:165 part/models.py:936
+#: part/templates/part/detail.html:86 templates/js/translated/order.js:1082
msgid "Creation Date"
msgstr "创建日期"
-#: build/models.py:278 order/models.py:569
+#: build/models.py:296 order/models.py:578
msgid "Target completion date"
msgstr "预计完成日期"
-#: build/models.py:282 order/models.py:288
-#: templates/js/translated/build.js:1293
+#: build/models.py:297
+msgid "Target date for build completion. Build will be overdue after this date."
+msgstr "生产完成的目标日期。生产将在此日期之后逾期。"
+
+#: build/models.py:300 order/models.py:291
+#: templates/js/translated/build.js:1697
msgid "Completion Date"
msgstr "完成日期:"
-#: build/models.py:288
+#: build/models.py:306
msgid "completed by"
msgstr "完成人"
-#: build/models.py:296 templates/js/translated/build.js:1264
+#: build/models.py:314 templates/js/translated/build.js:1668
msgid "Issued by"
msgstr "发布者"
-#: build/models.py:297
+#: build/models.py:315
msgid "User who issued this build order"
msgstr "发布此生产订单的用户"
-#: build/models.py:305 build/templates/build/build_base.html:184
-#: build/templates/build/detail.html:108 order/models.py:176
-#: order/templates/order/order_base.html:138
-#: order/templates/order/sales_order_base.html:145 part/models.py:858
+#: build/models.py:323 build/templates/build/build_base.html:177
+#: build/templates/build/detail.html:116 order/models.py:179
+#: order/templates/order/order_base.html:154
+#: order/templates/order/sales_order_base.html:161 part/models.py:940
#: report/templates/report/inventree_build_order_base.html:159
-#: templates/js/translated/build.js:1276
+#: templates/js/translated/build.js:1680
msgid "Responsible"
msgstr "责任人"
-#: build/models.py:306
+#: build/models.py:324
msgid "User responsible for this build order"
msgstr "负责此生产订单的用户"
-#: build/models.py:311 build/templates/build/detail.html:94
-#: company/templates/company/manufacturer_part.html:83
-#: company/templates/company/supplier_part.html:82
-#: part/templates/part/part_base.html:266 stock/models.py:507
-#: stock/templates/stock/item_base.html:359
+#: build/models.py:329 build/templates/build/detail.html:102
+#: company/templates/company/manufacturer_part.html:87
+#: company/templates/company/supplier_part.html:88
+#: part/templates/part/detail.html:80 stock/models.py:538
+#: stock/templates/stock/item_base.html:346
msgid "External Link"
msgstr "外部链接"
-#: build/models.py:312 part/models.py:716 stock/models.py:509
+#: build/models.py:330 part/models.py:798 stock/models.py:540
msgid "Link to external URL"
msgstr "链接到外部 URL"
-#: build/models.py:316 build/templates/build/navbar.html:52
-#: company/models.py:142 company/models.py:577
-#: company/templates/company/navbar.html:69
-#: company/templates/company/navbar.html:72 order/models.py:180
-#: order/models.py:729 order/templates/order/po_navbar.html:38
+#: build/models.py:334 build/serializers.py:201
+#: build/templates/build/sidebar.html:21 company/models.py:142
+#: company/models.py:577 company/templates/company/sidebar.html:25
+#: order/models.py:183 order/models.py:738
+#: order/templates/order/po_navbar.html:38
#: order/templates/order/po_navbar.html:41
-#: order/templates/order/so_navbar.html:33
-#: order/templates/order/so_navbar.html:36 part/models.py:843
-#: part/templates/part/detail.html:105 part/templates/part/navbar.html:120
-#: part/templates/part/navbar.html:123
+#: order/templates/order/po_sidebar.html:11
+#: order/templates/order/so_sidebar.html:11 part/models.py:925
+#: part/templates/part/detail.html:223 part/templates/part/part_sidebar.html:52
#: report/templates/report/inventree_build_order_base.html:173
-#: stock/forms.py:138 stock/forms.py:250 stock/forms.py:282 stock/models.py:579
-#: stock/models.py:1723 stock/models.py:1829 stock/serializers.py:451
-#: stock/templates/stock/navbar.html:57 templates/js/translated/barcode.js:59
-#: templates/js/translated/bom.js:406 templates/js/translated/company.js:841
-#: templates/js/translated/order.js:950 templates/js/translated/order.js:1540
-#: templates/js/translated/stock.js:559 templates/js/translated/stock.js:1040
+#: stock/forms.py:154 stock/forms.py:204 stock/forms.py:238 stock/models.py:610
+#: stock/models.py:1774 stock/models.py:1880 stock/serializers.py:325
+#: stock/serializers.py:584 stock/templates/stock/stock_sidebar.html:21
+#: templates/js/translated/barcode.js:58 templates/js/translated/bom.js:599
+#: templates/js/translated/company.js:842 templates/js/translated/order.js:963
+#: templates/js/translated/order.js:1561 templates/js/translated/stock.js:861
+#: templates/js/translated/stock.js:1340
msgid "Notes"
msgstr "备注"
-#: build/models.py:317
+#: build/models.py:335
msgid "Extra build notes"
msgstr "额外的生产备注"
-#: build/models.py:714
+#: build/models.py:710
msgid "No build output specified"
msgstr "未指定生产产出"
-#: build/models.py:717
+#: build/models.py:713
msgid "Build output is already completed"
msgstr "生产产出已完成"
-#: build/models.py:720
+#: build/models.py:716
msgid "Build output does not match Build Order"
msgstr "生产产出与订单不匹配"
-#: build/models.py:1102
+#: build/models.py:1108
msgid "Build item must specify a build output, as master part is marked as trackable"
msgstr ""
-#: build/models.py:1111
+#: build/models.py:1117
#, python-brace-format
msgid "Allocated quantity ({q}) must not execed available stock quantity ({a})"
msgstr ""
-#: build/models.py:1121
+#: build/models.py:1127
msgid "Stock item is over-allocated"
msgstr "库存物品分配过度!"
-#: build/models.py:1127 order/models.py:955
+#: build/models.py:1133 order/models.py:964
msgid "Allocation quantity must be greater than zero"
msgstr "分配数量必须大于0"
-#: build/models.py:1133
+#: build/models.py:1139
msgid "Quantity must be 1 for serialized stock"
msgstr ""
-#: build/models.py:1191
+#: build/models.py:1193
msgid "Selected stock item not found in BOM"
msgstr ""
-#: build/models.py:1251 stock/templates/stock/item_base.html:331
-#: templates/InvenTree/search.html:169 templates/js/translated/build.js:1195
-#: templates/navbar.html:35
+#: build/models.py:1253 stock/templates/stock/item_base.html:318
+#: templates/InvenTree/search.html:143 templates/js/translated/build.js:1599
+#: templates/navbar.html:33
msgid "Build"
msgstr "生产"
-#: build/models.py:1252
+#: build/models.py:1254
msgid "Build to allocate parts"
msgstr ""
-#: build/models.py:1268 build/serializers.py:151
+#: build/models.py:1270 build/serializers.py:328
#: stock/templates/stock/item_base.html:8
-#: stock/templates/stock/item_base.html:31
-#: stock/templates/stock/item_base.html:353
-#: stock/templates/stock/stock_adjust.html:16
-#: templates/js/translated/build.js:287 templates/js/translated/build.js:292
-#: templates/js/translated/build.js:976 templates/js/translated/build.js:1338
-#: templates/js/translated/order.js:1143 templates/js/translated/order.js:1148
-#: templates/js/translated/stock.js:1605
+#: stock/templates/stock/item_base.html:16
+#: stock/templates/stock/item_base.html:340
+#: templates/js/translated/build.js:408 templates/js/translated/build.js:413
+#: templates/js/translated/build.js:1361 templates/js/translated/build.js:1742
+#: templates/js/translated/order.js:1156 templates/js/translated/order.js:1161
+#: templates/js/translated/stock.js:1990
msgid "Stock Item"
msgstr "库存项"
-#: build/models.py:1269
+#: build/models.py:1271
msgid "Source stock item"
msgstr "源库存项"
-#: build/models.py:1282
+#: build/models.py:1284
msgid "Stock quantity to allocate to build"
msgstr ""
-#: build/models.py:1290
+#: build/models.py:1292
msgid "Install into"
msgstr "安装到"
-#: build/models.py:1291
+#: build/models.py:1293
msgid "Destination stock item"
msgstr ""
-#: build/serializers.py:133 part/models.py:2501
-msgid "BOM Item"
-msgstr ""
-
-#: build/serializers.py:142
-msgid "bom_item.part must point to the same part as the build order"
-msgstr ""
-
-#: build/serializers.py:157
-msgid "Item must be in stock"
-msgstr ""
-
-#: build/serializers.py:171 order/models.py:313 order/serializers.py:231
-#: stock/models.py:351 stock/models.py:1072
-msgid "Quantity must be greater than zero"
-msgstr ""
-
-#: build/serializers.py:180
+#: build/serializers.py:137 build/serializers.py:357
msgid "Build Output"
msgstr ""
+#: build/serializers.py:146
+msgid "Build output does not match the parent build"
+msgstr ""
+
+#: build/serializers.py:150
+msgid "Output part does not match BuildOrder part"
+msgstr ""
+
+#: build/serializers.py:154
+msgid "This build output has already been completed"
+msgstr ""
+
+#: build/serializers.py:158
+msgid "This build output is not fully allocated"
+msgstr ""
+
+#: build/serializers.py:190 order/serializers.py:217 order/serializers.py:285
+#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:686
+#: stock/templates/stock/item_base.html:286
+#: templates/js/translated/barcode.js:384
+#: templates/js/translated/barcode.js:557 templates/js/translated/build.js:420
+#: templates/js/translated/build.js:1027 templates/js/translated/order.js:348
+#: templates/js/translated/order.js:1168 templates/js/translated/order.js:1276
+#: templates/js/translated/order.js:1282 templates/js/translated/part.js:181
+#: templates/js/translated/stock.js:480 templates/js/translated/stock.js:1221
+#: templates/js/translated/stock.js:1931
+msgid "Location"
+msgstr "地点"
+
+#: build/serializers.py:191
+msgid "Location for completed build outputs"
+msgstr ""
+
+#: build/serializers.py:197 build/templates/build/build_base.html:129
+#: build/templates/build/detail.html:63 order/models.py:572
+#: order/serializers.py:238 stock/templates/stock/item_base.html:409
+#: templates/js/translated/barcode.js:140 templates/js/translated/build.js:1655
+#: templates/js/translated/order.js:431 templates/js/translated/order.js:677
+#: templates/js/translated/order.js:1074 templates/js/translated/stock.js:1196
+#: templates/js/translated/stock.js:2008 templates/js/translated/stock.js:2157
+msgid "Status"
+msgstr "状态"
+
#: build/serializers.py:213
+msgid "A list of build outputs must be provided"
+msgstr ""
+
+#: build/serializers.py:259 build/serializers.py:308 part/models.py:2700
+#: part/models.py:2859
+msgid "BOM Item"
+msgstr ""
+
+#: build/serializers.py:269
+msgid "Build output"
+msgstr ""
+
+#: build/serializers.py:278
+msgid "Build output must point to the same build"
+msgstr ""
+
+#: build/serializers.py:319
+msgid "bom_item.part must point to the same part as the build order"
+msgstr ""
+
+#: build/serializers.py:334
+msgid "Item must be in stock"
+msgstr ""
+
+#: build/serializers.py:348 order/models.py:316 order/serializers.py:231
+#: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298
+msgid "Quantity must be greater than zero"
+msgstr ""
+
+#: build/serializers.py:390
#, python-brace-format
msgid "Available quantity ({q}) exceeded"
msgstr ""
-#: build/serializers.py:219
+#: build/serializers.py:396
msgid "Build output must be specified for allocation of tracked parts"
msgstr ""
-#: build/serializers.py:226
+#: build/serializers.py:403
msgid "Build output cannot be specified for allocation of untracked parts"
msgstr ""
-#: build/serializers.py:254
+#: build/serializers.py:431
msgid "Allocation items must be provided"
msgstr ""
-#: build/templates/build/allocation_card.html:21
-#: build/templates/build/complete_output.html:46
-#: report/templates/report/inventree_test_report_base.html:75
-#: stock/models.py:501 stock/templates/stock/item_base.html:251
-#: templates/js/translated/build.js:636
-#: templates/js/translated/model_renderers.js:72
-#: templates/js/translated/order.js:1253 templates/js/translated/order.js:1342
-msgid "Serial Number"
-msgstr "序列号"
+#: build/tasks.py:92
+msgid "Stock required for build order"
+msgstr ""
-#: build/templates/build/build_base.html:18
+#: build/templates/build/build_base.html:39
+#: order/templates/order/order_base.html:28
+#: order/templates/order/sales_order_base.html:38
+msgid "Print actions"
+msgstr "打印操作"
+
+#: build/templates/build/build_base.html:43
+msgid "Print build order report"
+msgstr ""
+
+#: build/templates/build/build_base.html:50
+msgid "Build actions"
+msgstr "生产操作"
+
+#: build/templates/build/build_base.html:54
+msgid "Edit Build"
+msgstr "编辑生产"
+
+#: build/templates/build/build_base.html:56
+#: build/templates/build/build_base.html:207 build/views.py:56
+msgid "Cancel Build"
+msgstr "取消生产"
+
+#: build/templates/build/build_base.html:59
+msgid "Delete Build"
+msgstr "删除生产"
+
+#: build/templates/build/build_base.html:64
+#: build/templates/build/build_base.html:65
+#: build/templates/build/build_base.html:223
+msgid "Complete Build"
+msgstr "生产完成"
+
+#: build/templates/build/build_base.html:79
#, python-format
msgid "This Build Order is allocated to Sales Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:25
+#: build/templates/build/build_base.html:86
#, python-format
msgid "This Build Order is a child of Build Order %(link)s"
msgstr ""
-#: build/templates/build/build_base.html:32
+#: build/templates/build/build_base.html:93
msgid "Build Order is ready to mark as completed"
msgstr ""
-#: build/templates/build/build_base.html:37
+#: build/templates/build/build_base.html:98
msgid "Build Order cannot be completed as outstanding outputs remain"
msgstr ""
-#: build/templates/build/build_base.html:42
+#: build/templates/build/build_base.html:103
msgid "Required build quantity has not yet been completed"
msgstr "所需生产数量尚未完成"
-#: build/templates/build/build_base.html:47
+#: build/templates/build/build_base.html:108
msgid "Stock has not been fully allocated to this Build Order"
msgstr ""
-#: build/templates/build/build_base.html:75
-#: company/templates/company/company_base.html:40
-#: company/templates/company/manufacturer_part.html:29
-#: company/templates/company/supplier_part.html:30
-#: order/templates/order/order_base.html:26
-#: order/templates/order/sales_order_base.html:37
-#: part/templates/part/category.html:27 part/templates/part/part_base.html:30
-#: stock/templates/stock/item_base.html:62
-#: stock/templates/stock/location.html:31
-msgid "Admin view"
-msgstr "管理界面"
+#: build/templates/build/build_base.html:138
+#: build/templates/build/detail.html:132
+#: order/templates/order/order_base.html:140
+#: order/templates/order/sales_order_base.html:140
+#: report/templates/report/inventree_build_order_base.html:126
+#: templates/js/translated/build.js:1692 templates/js/translated/order.js:690
+#: templates/js/translated/order.js:1087
+msgid "Target Date"
+msgstr "预计日期"
-#: build/templates/build/build_base.html:81
-#: build/templates/build/build_base.html:150
-#: order/templates/order/order_base.html:32
-#: order/templates/order/order_base.html:86
-#: order/templates/order/sales_order_base.html:43
-#: order/templates/order/sales_order_base.html:93
-#: templates/js/translated/table_filters.js:272
-#: templates/js/translated/table_filters.js:300
-#: templates/js/translated/table_filters.js:317
-msgid "Overdue"
-msgstr "逾期"
-
-#: build/templates/build/build_base.html:90
-msgid "Print actions"
-msgstr "打印操作"
-
-#: build/templates/build/build_base.html:94
-msgid "Print Build Order"
-msgstr "打印生产订单"
-
-#: build/templates/build/build_base.html:100
-#: build/templates/build/build_base.html:222
-msgid "Complete Build"
-msgstr "生产完成"
-
-#: build/templates/build/build_base.html:105
-msgid "Build actions"
-msgstr "生产操作"
-
-#: build/templates/build/build_base.html:109
-msgid "Edit Build"
-msgstr "编辑生产"
-
-#: build/templates/build/build_base.html:111
-#: build/templates/build/build_base.html:206 build/views.py:56
-msgid "Cancel Build"
-msgstr "取消生产"
-
-#: build/templates/build/build_base.html:114
-msgid "Delete Build"
-msgstr "删除生产"
-
-#: build/templates/build/build_base.html:124
-#: build/templates/build/detail.html:15
-msgid "Build Details"
-msgstr "生产详情"
-
-#: build/templates/build/build_base.html:150
+#: build/templates/build/build_base.html:143
#, python-format
msgid "This build was due on %(target)s"
msgstr "此次生产的截止日期为 %(target)s"
-#: build/templates/build/build_base.html:157
-#: build/templates/build/detail.html:67
-msgid "Progress"
-msgstr "生产进度"
+#: build/templates/build/build_base.html:143
+#: build/templates/build/build_base.html:188
+#: order/templates/order/order_base.html:81
+#: order/templates/order/order_base.html:102
+#: order/templates/order/sales_order_base.html:78
+#: order/templates/order/sales_order_base.html:107
+#: templates/js/translated/table_filters.js:294
+#: templates/js/translated/table_filters.js:322
+#: templates/js/translated/table_filters.js:339
+msgid "Overdue"
+msgstr "逾期"
-#: build/templates/build/build_base.html:170
-#: build/templates/build/detail.html:87 order/models.py:848
+#: build/templates/build/build_base.html:150
+#: build/templates/build/detail.html:68 build/templates/build/detail.html:143
+#: templates/js/translated/build.js:1641
+#: templates/js/translated/table_filters.js:304
+msgid "Completed"
+msgstr "已完成"
+
+#: build/templates/build/build_base.html:163
+#: build/templates/build/detail.html:95 order/models.py:857
#: order/templates/order/sales_order_base.html:9
-#: order/templates/order/sales_order_base.html:35
+#: order/templates/order/sales_order_base.html:28
#: order/templates/order/sales_order_ship.html:25
#: report/templates/report/inventree_build_order_base.html:136
#: report/templates/report/inventree_so_report.html:77
-#: stock/templates/stock/item_base.html:293
-#: templates/js/translated/order.js:1016
+#: stock/templates/stock/item_base.html:280
+#: templates/js/translated/order.js:1029
msgid "Sales Order"
msgstr "销售订单"
-#: build/templates/build/build_base.html:177
-#: build/templates/build/detail.html:101
+#: build/templates/build/build_base.html:170
+#: build/templates/build/detail.html:109
#: report/templates/report/inventree_build_order_base.html:153
msgid "Issued By"
msgstr "发布者"
-#: build/templates/build/build_base.html:214
+#: build/templates/build/build_base.html:215
msgid "Incomplete Outputs"
msgstr "未完成输出"
-#: build/templates/build/build_base.html:215
+#: build/templates/build/build_base.html:216
msgid "Build Order cannot be completed as incomplete build outputs remain"
msgstr ""
@@ -1175,220 +1158,203 @@ msgstr "所需生产数量尚未完成"
msgid "Required stock has not been fully allocated"
msgstr "所需库存尚未完全分配"
-#: build/templates/build/complete_output.html:10
-msgid "Stock allocation is complete for this output"
-msgstr ""
+#: build/templates/build/detail.html:16
+msgid "Build Details"
+msgstr "生产详情"
-#: build/templates/build/complete_output.html:14
-msgid "Stock allocation is incomplete"
-msgstr "库存分配尚未完成"
-
-#: build/templates/build/complete_output.html:20
-msgid "tracked parts have not been fully allocated"
-msgstr ""
-
-#: build/templates/build/complete_output.html:41
-msgid "The following items will be created"
-msgstr ""
-
-#: build/templates/build/detail.html:38
+#: build/templates/build/detail.html:39
msgid "Stock Source"
msgstr ""
-#: build/templates/build/detail.html:43
+#: build/templates/build/detail.html:44
msgid "Stock can be taken from any available location."
msgstr ""
-#: build/templates/build/detail.html:49 order/models.py:802 stock/forms.py:134
-#: templates/js/translated/order.js:431 templates/js/translated/order.js:939
+#: build/templates/build/detail.html:50 order/models.py:811 stock/forms.py:150
+#: templates/js/translated/order.js:432 templates/js/translated/order.js:952
msgid "Destination"
msgstr ""
-#: build/templates/build/detail.html:56
+#: build/templates/build/detail.html:57
msgid "Destination location not specified"
msgstr ""
-#: build/templates/build/detail.html:73
-#: stock/templates/stock/item_base.html:317
-#: templates/js/translated/stock.js:910 templates/js/translated/stock.js:1852
-#: templates/js/translated/table_filters.js:129
-#: templates/js/translated/table_filters.js:211
+#: build/templates/build/detail.html:74 templates/js/translated/build.js:647
+msgid "Allocated Parts"
+msgstr ""
+
+#: build/templates/build/detail.html:81
+#: stock/templates/stock/item_base.html:304
+#: templates/js/translated/stock.js:1210 templates/js/translated/stock.js:2164
+#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:233
msgid "Batch"
msgstr ""
-#: build/templates/build/detail.html:119
-#: order/templates/order/order_base.html:111
-#: order/templates/order/sales_order_base.html:118
-#: templates/js/translated/build.js:1259
+#: build/templates/build/detail.html:127
+#: order/templates/order/order_base.html:127
+#: order/templates/order/sales_order_base.html:134
+#: templates/js/translated/build.js:1663
msgid "Created"
msgstr "已创建"
-#: build/templates/build/detail.html:130
+#: build/templates/build/detail.html:138
msgid "No target date set"
msgstr "无预计日期"
-#: build/templates/build/detail.html:135 templates/js/translated/build.js:1237
-#: templates/js/translated/table_filters.js:282
-msgid "Completed"
-msgstr "已完成"
-
-#: build/templates/build/detail.html:139
+#: build/templates/build/detail.html:147
msgid "Build not complete"
msgstr "生产未完成"
-#: build/templates/build/detail.html:150 build/templates/build/navbar.html:35
+#: build/templates/build/detail.html:158 build/templates/build/sidebar.html:17
msgid "Child Build Orders"
msgstr "子生产订单"
-#: build/templates/build/detail.html:166
+#: build/templates/build/detail.html:173
msgid "Allocate Stock to Build"
msgstr "为生产分配库存"
-#: build/templates/build/detail.html:172
-msgid "Allocate stock to build"
-msgstr "为生产分配库存"
-
-#: build/templates/build/detail.html:173 build/templates/build/navbar.html:20
-#: build/templates/build/navbar.html:23
-msgid "Allocate Stock"
-msgstr "分配库存"
-
-#: build/templates/build/detail.html:175 templates/js/translated/build.js:817
+#: build/templates/build/detail.html:177 templates/js/translated/build.js:1202
msgid "Unallocate stock"
msgstr "未分配库存"
-#: build/templates/build/detail.html:176 build/views.py:257
+#: build/templates/build/detail.html:178
msgid "Unallocate Stock"
msgstr "未分配库存"
-#: build/templates/build/detail.html:179
+#: build/templates/build/detail.html:180
+msgid "Allocate stock to build"
+msgstr "为生产分配库存"
+
+#: build/templates/build/detail.html:181 build/templates/build/sidebar.html:8
+msgid "Allocate Stock"
+msgstr "分配库存"
+
+#: build/templates/build/detail.html:184
msgid "Order required parts"
msgstr "订单所需部件"
-#: build/templates/build/detail.html:180
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72 order/views.py:509
-#: part/templates/part/category.html:140
+#: build/templates/build/detail.html:185
+#: company/templates/company/detail.html:38
+#: company/templates/company/detail.html:85 order/views.py:509
+#: part/templates/part/category.html:166
msgid "Order Parts"
msgstr "订购商品"
-#: build/templates/build/detail.html:186
+#: build/templates/build/detail.html:197
msgid "Untracked stock has been fully allocated for this Build Order"
msgstr "未跟踪的库存已完全分配给此生产订单"
-#: build/templates/build/detail.html:190
+#: build/templates/build/detail.html:201
msgid "Untracked stock has not been fully allocated for this Build Order"
msgstr "未跟踪的库存尚未完全分配给此生产订单"
-#: build/templates/build/detail.html:197
+#: build/templates/build/detail.html:208
msgid "Allocate selected items"
msgstr ""
-#: build/templates/build/detail.html:209
+#: build/templates/build/detail.html:218
msgid "This Build Order does not have any associated untracked BOM items"
msgstr ""
-#: build/templates/build/detail.html:218
+#: build/templates/build/detail.html:227
msgid "Incomplete Build Outputs"
msgstr "未完成的生产产出"
-#: build/templates/build/detail.html:223
+#: build/templates/build/detail.html:231
msgid "Create new build output"
msgstr ""
-#: build/templates/build/detail.html:224
-msgid "Create New Output"
+#: build/templates/build/detail.html:232
+msgid "New Build Output"
msgstr ""
-#: build/templates/build/detail.html:237
-msgid "Create a new build output"
+#: build/templates/build/detail.html:246
+msgid "Output Actions"
msgstr ""
-#: build/templates/build/detail.html:238
-msgid "No incomplete build outputs remain."
+#: build/templates/build/detail.html:250
+msgid "Complete selected items"
msgstr ""
-#: build/templates/build/detail.html:239
-msgid "Create a new build output using the button above"
+#: build/templates/build/detail.html:251
+msgid "Complete outputs"
msgstr ""
-#: build/templates/build/detail.html:247
+#: build/templates/build/detail.html:266
msgid "Completed Build Outputs"
msgstr ""
-#: build/templates/build/detail.html:258 build/templates/build/navbar.html:42
-#: build/templates/build/navbar.html:45 order/templates/order/po_navbar.html:35
-#: order/templates/order/sales_order_detail.html:43
-#: order/templates/order/so_navbar.html:29 part/templates/part/detail.html:173
-#: part/templates/part/navbar.html:114 part/templates/part/navbar.html:117
-#: stock/templates/stock/item.html:88 stock/templates/stock/navbar.html:47
-#: stock/templates/stock/navbar.html:50
+#: build/templates/build/detail.html:278 build/templates/build/sidebar.html:19
+#: order/templates/order/po_navbar.html:35
+#: order/templates/order/po_sidebar.html:9
+#: order/templates/order/purchase_order_detail.html:60
+#: order/templates/order/sales_order_detail.html:52
+#: order/templates/order/so_sidebar.html:9 part/templates/part/detail.html:300
+#: part/templates/part/part_sidebar.html:50 stock/templates/stock/item.html:95
+#: stock/templates/stock/stock_sidebar.html:19
msgid "Attachments"
msgstr "附件"
-#: build/templates/build/detail.html:269
+#: build/templates/build/detail.html:294
msgid "Build Notes"
msgstr "生产备注"
-#: build/templates/build/detail.html:273 build/templates/build/detail.html:414
-#: company/templates/company/detail.html:169
-#: company/templates/company/detail.html:196
-#: order/templates/order/purchase_order_detail.html:71
-#: order/templates/order/purchase_order_detail.html:104
-#: order/templates/order/sales_order_detail.html:58
-#: order/templates/order/sales_order_detail.html:85
-#: part/templates/part/detail.html:109 stock/templates/stock/item.html:103
-#: stock/templates/stock/item.html:188
+#: build/templates/build/detail.html:298 build/templates/build/detail.html:489
+#: company/templates/company/detail.html:188
+#: company/templates/company/detail.html:215
+#: order/templates/order/purchase_order_detail.html:80
+#: order/templates/order/purchase_order_detail.html:108
+#: order/templates/order/sales_order_detail.html:72
+#: order/templates/order/sales_order_detail.html:99
+#: part/templates/part/detail.html:227 stock/templates/stock/item.html:115
+#: stock/templates/stock/item.html:205
msgid "Edit Notes"
msgstr "编辑备注"
-#: build/templates/build/detail.html:373
+#: build/templates/build/detail.html:448
#: order/templates/order/po_attachments.html:79
-#: order/templates/order/purchase_order_detail.html:166
-#: order/templates/order/sales_order_detail.html:146
-#: part/templates/part/detail.html:891 stock/templates/stock/item.html:253
-#: templates/attachment_table.html:6
+#: order/templates/order/purchase_order_detail.html:170
+#: order/templates/order/sales_order_detail.html:160
+#: part/templates/part/detail.html:1060 stock/templates/stock/item.html:270
+#: templates/attachment_button.html:4
msgid "Add Attachment"
msgstr "添加附件"
-#: build/templates/build/detail.html:392
+#: build/templates/build/detail.html:467
#: order/templates/order/po_attachments.html:51
-#: order/templates/order/purchase_order_detail.html:138
-#: order/templates/order/sales_order_detail.html:119
-#: part/templates/part/detail.html:845 stock/templates/stock/item.html:221
+#: order/templates/order/purchase_order_detail.html:142
+#: order/templates/order/sales_order_detail.html:133
+#: part/templates/part/detail.html:1014 stock/templates/stock/item.html:238
msgid "Edit Attachment"
msgstr "编辑附件"
-#: build/templates/build/detail.html:399
+#: build/templates/build/detail.html:474
#: order/templates/order/po_attachments.html:58
-#: order/templates/order/purchase_order_detail.html:145
-#: order/templates/order/sales_order_detail.html:125
-#: part/templates/part/detail.html:854 stock/templates/stock/item.html:230
-#: templates/js/translated/order.js:1230
+#: order/templates/order/purchase_order_detail.html:149
+#: order/templates/order/sales_order_detail.html:139
+#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:247
+#: templates/js/translated/order.js:1243
msgid "Confirm Delete Operation"
msgstr "确认删除操作"
-#: build/templates/build/detail.html:400
+#: build/templates/build/detail.html:475
#: order/templates/order/po_attachments.html:59
-#: order/templates/order/purchase_order_detail.html:146
-#: order/templates/order/sales_order_detail.html:126
-#: part/templates/part/detail.html:855 stock/templates/stock/item.html:231
+#: order/templates/order/purchase_order_detail.html:150
+#: order/templates/order/sales_order_detail.html:140
+#: part/templates/part/detail.html:1024 stock/templates/stock/item.html:248
msgid "Delete Attachment"
msgstr "删除附件"
-#: build/templates/build/detail.html:443
+#: build/templates/build/detail.html:513
msgid "Allocation Complete"
msgstr ""
-#: build/templates/build/detail.html:444
+#: build/templates/build/detail.html:514
msgid "All untracked stock items have been allocated"
msgstr ""
-#: build/templates/build/edit_build_item.html:7
-msgid "Alter the quantity of stock allocated to the build output"
-msgstr ""
-
-#: build/templates/build/index.html:28
+#: build/templates/build/index.html:18 part/templates/part/detail.html:407
msgid "New Build Order"
msgstr "新建生产订单"
@@ -1396,46 +1362,29 @@ msgstr "新建生产订单"
msgid "Print Build Orders"
msgstr "打印生产订单"
-#: build/templates/build/index.html:43
-#: order/templates/order/purchase_orders.html:27
-#: order/templates/order/sales_orders.html:27
+#: build/templates/build/index.html:44
+#: order/templates/order/purchase_orders.html:34
+#: order/templates/order/sales_orders.html:37
msgid "Display calendar view"
msgstr "显示日历"
-#: build/templates/build/index.html:46
-#: order/templates/order/purchase_orders.html:30
-#: order/templates/order/sales_orders.html:30
+#: build/templates/build/index.html:47
+#: order/templates/order/purchase_orders.html:37
+#: order/templates/order/sales_orders.html:40
msgid "Display list view"
msgstr "列表视图"
-#: build/templates/build/navbar.html:12
+#: build/templates/build/sidebar.html:5
msgid "Build Order Details"
-msgstr "生产订单详情"
-
-#: build/templates/build/navbar.html:15 order/templates/order/po_navbar.html:15
-#: templates/js/translated/stock.js:1534
-msgid "Details"
-msgstr "详情"
-
-#: build/templates/build/navbar.html:28 build/templates/build/navbar.html:31
-msgid "Build Outputs"
-msgstr "生产产出"
-
-#: build/templates/build/navbar.html:38
-msgid "Child Builds"
msgstr ""
-#: build/templates/build/navbar.html:49
-msgid "Build Order Notes"
-msgstr "生产订单备注"
+#: build/templates/build/sidebar.html:12
+msgid "Pending Items"
+msgstr ""
-#: build/templates/build/unallocate.html:10
-msgid "Are you sure you wish to unallocate all stock for this build?"
-msgstr "您确定要取消此生产的所有库存分配?"
-
-#: build/templates/build/unallocate.html:12
-msgid "All incomplete stock allocations will be removed from the build"
-msgstr "所有未完成的库存分配都将从生产中删除"
+#: build/templates/build/sidebar.html:15
+msgid "Completed Items"
+msgstr ""
#: build/views.py:76
msgid "Build was cancelled"
@@ -1449,7 +1398,7 @@ msgstr "创建创建生产产出"
msgid "Maximum output quantity is "
msgstr "最大产出量是 "
-#: build/views.py:122 stock/views.py:1366
+#: build/views.py:122 stock/serializers.py:356 stock/views.py:1290
msgid "Serial numbers already exist"
msgstr "序列号已存在"
@@ -1461,11 +1410,11 @@ msgstr "可追踪的生产产出需要序列号"
msgid "Delete Build Output"
msgstr "删除生产产出"
-#: build/views.py:218 build/views.py:308
+#: build/views.py:218
msgid "Confirm unallocation of build stock"
msgstr ""
-#: build/views.py:219 build/views.py:309 stock/views.py:381
+#: build/views.py:219 stock/views.py:385
msgid "Check the confirmation box"
msgstr "选中确认框"
@@ -1473,7 +1422,7 @@ msgstr "选中确认框"
msgid "Build output does not match build"
msgstr "生产产出与生产不匹配"
-#: build/views.py:233 build/views.py:434
+#: build/views.py:233
msgid "Build output must be specified"
msgstr "必须指定生成产出"
@@ -1481,39 +1430,19 @@ msgstr "必须指定生成产出"
msgid "Build output deleted"
msgstr "生产产出已删除"
-#: build/views.py:343
+#: build/views.py:261
msgid "Complete Build Order"
msgstr "生产订单完成"
-#: build/views.py:349
+#: build/views.py:267
msgid "Build order cannot be completed - incomplete outputs remain"
msgstr ""
-#: build/views.py:360
+#: build/views.py:278
msgid "Completed build order"
msgstr "已完成的生产订单"
-#: build/views.py:376
-msgid "Complete Build Output"
-msgstr ""
-
-#: build/views.py:418
-msgid "Invalid stock status value selected"
-msgstr "选定的库存状态值无效"
-
-#: build/views.py:425
-msgid "Quantity to complete cannot exceed build output quantity"
-msgstr "完成数量不能超过生产产出数量"
-
-#: build/views.py:431
-msgid "Confirm completion of incomplete build"
-msgstr ""
-
-#: build/views.py:530
-msgid "Build output completed"
-msgstr "生产产出已完成"
-
-#: build/views.py:567
+#: build/views.py:319
msgid "Delete Build Order"
msgstr "删除生产订单"
@@ -1554,725 +1483,727 @@ msgstr ""
msgid "Select {name} file to upload"
msgstr ""
-#: common/models.py:308 common/models.py:887 common/models.py:1048
+#: common/models.py:340 common/models.py:970 common/models.py:1178
msgid "Settings key (must be unique - case insensitive"
msgstr ""
-#: common/models.py:310
+#: common/models.py:342
msgid "Settings value"
msgstr ""
-#: common/models.py:345
+#: common/models.py:377
msgid "Must be an integer value"
msgstr ""
-#: common/models.py:368
+#: common/models.py:382
+msgid "Chosen value is not a valid option"
+msgstr ""
+
+#: common/models.py:405
msgid "Value must be a boolean value"
msgstr ""
-#: common/models.py:379
+#: common/models.py:416
msgid "Value must be an integer value"
msgstr ""
-#: common/models.py:402
+#: common/models.py:439
msgid "Key string must be unique"
msgstr ""
-#: common/models.py:509
+#: common/models.py:559
+msgid "No group"
+msgstr ""
+
+#: common/models.py:601
+msgid "Restart required"
+msgstr ""
+
+#: common/models.py:602
+msgid "A setting has been changed which requires a server restart"
+msgstr ""
+
+#: common/models.py:609
msgid "InvenTree Instance Name"
msgstr ""
-#: common/models.py:511
+#: common/models.py:611
msgid "String descriptor for the server instance"
msgstr ""
-#: common/models.py:515
+#: common/models.py:615
msgid "Use instance name"
msgstr ""
-#: common/models.py:516
+#: common/models.py:616
msgid "Use the instance name in the title-bar"
msgstr ""
-#: common/models.py:522 company/models.py:100 company/models.py:101
+#: common/models.py:622 company/models.py:100 company/models.py:101
msgid "Company name"
msgstr "公司名称"
-#: common/models.py:523
+#: common/models.py:623
msgid "Internal company name"
msgstr "内部公司名称"
-#: common/models.py:528
+#: common/models.py:628
msgid "Base URL"
msgstr ""
-#: common/models.py:529
+#: common/models.py:629
msgid "Base URL for server instance"
msgstr ""
-#: common/models.py:535
+#: common/models.py:635
msgid "Default Currency"
msgstr ""
-#: common/models.py:536
+#: common/models.py:636
msgid "Default currency"
msgstr ""
-#: common/models.py:542
+#: common/models.py:642
msgid "Download from URL"
msgstr ""
-#: common/models.py:543
+#: common/models.py:643
msgid "Allow download of remote images and files from external URL"
msgstr ""
-#: common/models.py:549
+#: common/models.py:649 templates/InvenTree/settings/sidebar.html:30
msgid "Barcode Support"
msgstr ""
-#: common/models.py:550
+#: common/models.py:650
msgid "Enable barcode scanner support"
msgstr "启用条形码扫描支持"
-#: common/models.py:556
+#: common/models.py:656
msgid "IPN Regex"
msgstr ""
-#: common/models.py:557
+#: common/models.py:657
msgid "Regular expression pattern for matching Part IPN"
msgstr ""
-#: common/models.py:561
+#: common/models.py:661
msgid "Allow Duplicate IPN"
msgstr ""
-#: common/models.py:562
+#: common/models.py:662
msgid "Allow multiple parts to share the same IPN"
msgstr ""
-#: common/models.py:568
+#: common/models.py:668
msgid "Allow Editing IPN"
msgstr ""
-#: common/models.py:569
+#: common/models.py:669
msgid "Allow changing the IPN value while editing a part"
msgstr ""
-#: common/models.py:575
+#: common/models.py:675
msgid "Copy Part BOM Data"
msgstr ""
-#: common/models.py:576
+#: common/models.py:676
msgid "Copy BOM data by default when duplicating a part"
msgstr ""
-#: common/models.py:582
+#: common/models.py:682
msgid "Copy Part Parameter Data"
msgstr ""
-#: common/models.py:583
+#: common/models.py:683
msgid "Copy parameter data by default when duplicating a part"
msgstr ""
-#: common/models.py:589
+#: common/models.py:689
msgid "Copy Part Test Data"
msgstr ""
-#: common/models.py:590
+#: common/models.py:690
msgid "Copy test data by default when duplicating a part"
msgstr ""
-#: common/models.py:596
+#: common/models.py:696
msgid "Copy Category Parameter Templates"
msgstr ""
-#: common/models.py:597
+#: common/models.py:697
msgid "Copy category parameter templates when creating a part"
msgstr ""
-#: common/models.py:603 part/models.py:2256 report/models.py:187
-#: stock/forms.py:224 templates/js/translated/table_filters.js:38
-#: templates/js/translated/table_filters.js:351
+#: common/models.py:703 part/models.py:2429 report/models.py:187
+#: templates/js/translated/table_filters.js:38
+#: templates/js/translated/table_filters.js:373
msgid "Template"
msgstr "模板"
-#: common/models.py:604
+#: common/models.py:704
msgid "Parts are templates by default"
msgstr ""
-#: common/models.py:610 part/models.py:806
-#: templates/js/translated/table_filters.js:146
-#: templates/js/translated/table_filters.js:363
+#: common/models.py:710 part/models.py:888 templates/js/translated/bom.js:956
+#: templates/js/translated/table_filters.js:168
+#: templates/js/translated/table_filters.js:385
msgid "Assembly"
msgstr "组装"
-#: common/models.py:611
+#: common/models.py:711
msgid "Parts can be assembled from other components by default"
msgstr ""
-#: common/models.py:617 part/models.py:812
-#: templates/js/translated/table_filters.js:367
+#: common/models.py:717 part/models.py:894
+#: templates/js/translated/table_filters.js:389
msgid "Component"
msgstr "组件"
-#: common/models.py:618
+#: common/models.py:718
msgid "Parts can be used as sub-components by default"
msgstr ""
-#: common/models.py:624 part/models.py:823
+#: common/models.py:724 part/models.py:905
msgid "Purchaseable"
msgstr "可购买"
-#: common/models.py:625
+#: common/models.py:725
msgid "Parts are purchaseable by default"
msgstr "商品默认可购买"
-#: common/models.py:631 part/models.py:828
-#: templates/js/translated/table_filters.js:375
+#: common/models.py:731 part/models.py:910
+#: templates/js/translated/table_filters.js:397
msgid "Salable"
msgstr "可销售"
-#: common/models.py:632
+#: common/models.py:732
msgid "Parts are salable by default"
msgstr "商品默认可销售"
-#: common/models.py:638 part/models.py:818
+#: common/models.py:738 part/models.py:900
#: templates/js/translated/table_filters.js:46
-#: templates/js/translated/table_filters.js:379
+#: templates/js/translated/table_filters.js:100
+#: templates/js/translated/table_filters.js:401
msgid "Trackable"
msgstr "可追踪"
-#: common/models.py:639
+#: common/models.py:739
msgid "Parts are trackable by default"
msgstr "商品默认可跟踪"
-#: common/models.py:645 part/models.py:838
-#: part/templates/part/part_base.html:66
+#: common/models.py:745 part/models.py:920
+#: part/templates/part/part_base.html:144
#: templates/js/translated/table_filters.js:42
msgid "Virtual"
msgstr "虚拟"
-#: common/models.py:646
+#: common/models.py:746
msgid "Parts are virtual by default"
msgstr "商品默认是虚拟的"
-#: common/models.py:652
+#: common/models.py:752
msgid "Show Import in Views"
msgstr "视图中显示导入"
-#: common/models.py:653
+#: common/models.py:753
msgid "Display the import wizard in some part views"
msgstr "在一些商品视图中显示导入向导"
-#: common/models.py:659
+#: common/models.py:759
msgid "Show Price in Forms"
msgstr "在表格中显示价格"
-#: common/models.py:660
+#: common/models.py:760
msgid "Display part price in some forms"
msgstr "以某些表格显示商品价格"
-#: common/models.py:671
+#: common/models.py:771
msgid "Show Price in BOM"
msgstr ""
-#: common/models.py:672
+#: common/models.py:772
msgid "Include pricing information in BOM tables"
msgstr ""
-#: common/models.py:678
+#: common/models.py:778
msgid "Show related parts"
msgstr "显示相关商品"
-#: common/models.py:679
+#: common/models.py:779
msgid "Display related parts for a part"
msgstr ""
-#: common/models.py:685
+#: common/models.py:785
msgid "Create initial stock"
msgstr "创建初始库存"
-#: common/models.py:686
+#: common/models.py:786
msgid "Create initial stock on part creation"
msgstr ""
-#: common/models.py:692
+#: common/models.py:792
msgid "Internal Prices"
msgstr "内部价格"
-#: common/models.py:693
+#: common/models.py:793
msgid "Enable internal prices for parts"
msgstr "启用内部商品价格"
-#: common/models.py:699
+#: common/models.py:799
msgid "Internal Price as BOM-Price"
msgstr "内部价格为BOM价格"
-#: common/models.py:700
+#: common/models.py:800
msgid "Use the internal price (if set) in BOM-price calculations"
msgstr "在 BOM价格计算中使用内部价格(如设置)"
-#: common/models.py:706 templates/stats.html:25
+#: common/models.py:806
+msgid "Part Name Display Format"
+msgstr ""
+
+#: common/models.py:807
+msgid "Format to display the part name"
+msgstr ""
+
+#: common/models.py:814
+msgid "Enable Reports"
+msgstr ""
+
+#: common/models.py:815
+msgid "Enable generation of reports"
+msgstr ""
+
+#: common/models.py:821 templates/stats.html:25
msgid "Debug Mode"
msgstr "调试模式"
-#: common/models.py:707
+#: common/models.py:822
msgid "Generate reports in debug mode (HTML output)"
msgstr "在调试模式生成报告(HTML输出)"
-#: common/models.py:713
+#: common/models.py:828
msgid "Page Size"
msgstr "页面大小"
-#: common/models.py:714
+#: common/models.py:829
msgid "Default page size for PDF reports"
msgstr "PDF 报表默认页面大小"
-#: common/models.py:724
+#: common/models.py:839
msgid "Test Reports"
msgstr "测试报表"
-#: common/models.py:725
+#: common/models.py:840
msgid "Enable generation of test reports"
msgstr "启用生成测试报表"
-#: common/models.py:731
+#: common/models.py:846
msgid "Stock Expiry"
msgstr "库存到期"
-#: common/models.py:732
+#: common/models.py:847
msgid "Enable stock expiry functionality"
msgstr "启用库存到期功能"
-#: common/models.py:738
+#: common/models.py:853
msgid "Sell Expired Stock"
msgstr "销售过期库存"
-#: common/models.py:739
+#: common/models.py:854
msgid "Allow sale of expired stock"
msgstr "允许销售过期库存"
-#: common/models.py:745
+#: common/models.py:860
msgid "Stock Stale Time"
msgstr ""
-#: common/models.py:746
+#: common/models.py:861
msgid "Number of days stock items are considered stale before expiring"
msgstr ""
-#: common/models.py:748
+#: common/models.py:863
msgid "days"
msgstr "天"
-#: common/models.py:753
+#: common/models.py:868
msgid "Build Expired Stock"
msgstr ""
-#: common/models.py:754
+#: common/models.py:869
msgid "Allow building with expired stock"
msgstr ""
-#: common/models.py:760
+#: common/models.py:875
msgid "Stock Ownership Control"
msgstr "库存所有权控制"
-#: common/models.py:761
+#: common/models.py:876
msgid "Enable ownership control over stock locations and items"
msgstr ""
-#: common/models.py:767
+#: common/models.py:882
msgid "Group by Part"
msgstr "按商品分组"
-#: common/models.py:768
+#: common/models.py:883
msgid "Group stock items by part reference in table views"
msgstr ""
-#: common/models.py:774
+#: common/models.py:889
msgid "Build Order Reference Prefix"
msgstr "生产订单参考前缀"
-#: common/models.py:775
+#: common/models.py:890
msgid "Prefix value for build order reference"
msgstr ""
-#: common/models.py:780
+#: common/models.py:895
msgid "Build Order Reference Regex"
msgstr ""
-#: common/models.py:781
+#: common/models.py:896
msgid "Regular expression pattern for matching build order reference"
msgstr ""
-#: common/models.py:785
+#: common/models.py:900
msgid "Sales Order Reference Prefix"
msgstr ""
-#: common/models.py:786
+#: common/models.py:901
msgid "Prefix value for sales order reference"
msgstr ""
-#: common/models.py:791
+#: common/models.py:906
msgid "Purchase Order Reference Prefix"
msgstr ""
-#: common/models.py:792
+#: common/models.py:907
msgid "Prefix value for purchase order reference"
msgstr ""
-#: common/models.py:798
-msgid "Enable build"
-msgstr ""
-
-#: common/models.py:799
-msgid "Enable build functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:804
-msgid "Enable buy"
-msgstr "启用采购"
-
-#: common/models.py:805
-msgid "Enable buy functionality in InvenTree interface"
-msgstr "在 InventTree 界面中启用采购功能"
-
-#: common/models.py:810
-msgid "Enable sell"
-msgstr "启用销售"
-
-#: common/models.py:811
-msgid "Enable sell functionality in InvenTree interface"
-msgstr "在 InventTree 界面中启用销售功能"
-
-#: common/models.py:816
-msgid "Enable stock"
-msgstr ""
-
-#: common/models.py:817
-msgid "Enable stock functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:822
-msgid "Enable SO"
-msgstr ""
-
-#: common/models.py:823
-msgid "Enable SO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:828
-msgid "Enable PO"
-msgstr ""
-
-#: common/models.py:829
-msgid "Enable PO functionality in InvenTree interface"
-msgstr ""
-
-#: common/models.py:836
+#: common/models.py:913
msgid "Enable password forgot"
msgstr ""
-#: common/models.py:837
-msgid "Enable password forgot function on the login-pages"
+#: common/models.py:914
+msgid "Enable password forgot function on the login pages"
msgstr ""
-#: common/models.py:842
+#: common/models.py:919
msgid "Enable registration"
msgstr ""
-#: common/models.py:843
-msgid "Enable self-registration for users on the login-pages"
+#: common/models.py:920
+msgid "Enable self-registration for users on the login pages"
msgstr ""
-#: common/models.py:848
+#: common/models.py:925
msgid "Enable SSO"
msgstr ""
-#: common/models.py:849
-msgid "Enable SSO on the login-pages"
+#: common/models.py:926
+msgid "Enable SSO on the login pages"
msgstr ""
-#: common/models.py:854
-msgid "E-Mail required"
+#: common/models.py:931
+msgid "Email required"
msgstr ""
-#: common/models.py:855
+#: common/models.py:932
msgid "Require user to supply mail on signup"
msgstr ""
-#: common/models.py:860
+#: common/models.py:937
msgid "Auto-fill SSO users"
msgstr ""
-#: common/models.py:861
+#: common/models.py:938
msgid "Automatically fill out user-details from SSO account-data"
msgstr ""
-#: common/models.py:866
+#: common/models.py:943
msgid "Mail twice"
msgstr ""
-#: common/models.py:867
+#: common/models.py:944
msgid "On signup ask users twice for their mail"
msgstr ""
-#: common/models.py:872
+#: common/models.py:949
msgid "Password twice"
msgstr ""
-#: common/models.py:873
+#: common/models.py:950
msgid "On signup ask users twice for their password"
msgstr ""
-#: common/models.py:898
-msgid "Show starred parts"
-msgstr "显示星标商品"
-
-#: common/models.py:899
-msgid "Show starred parts on the homepage"
-msgstr "在主页上显示星标商品"
-
-#: common/models.py:904
-msgid "Show latest parts"
-msgstr "显示最近商品"
-
-#: common/models.py:905
-msgid "Show latest parts on the homepage"
-msgstr "在主页上显示最近商品"
-
-#: common/models.py:910
-msgid "Recent Part Count"
+#: common/models.py:955
+msgid "Group on signup"
msgstr ""
-#: common/models.py:911
-msgid "Number of recent parts to display on index page"
+#: common/models.py:956
+msgid "Group to which new users are assigned on registration"
msgstr ""
-#: common/models.py:917
-msgid "Show unvalidated BOMs"
-msgstr ""
-
-#: common/models.py:918
-msgid "Show BOMs that await validation on the homepage"
-msgstr ""
-
-#: common/models.py:923
-msgid "Show recent stock changes"
-msgstr ""
-
-#: common/models.py:924
-msgid "Show recently changed stock items on the homepage"
-msgstr ""
-
-#: common/models.py:929
-msgid "Recent Stock Count"
-msgstr ""
-
-#: common/models.py:930
-msgid "Number of recent stock items to display on index page"
-msgstr ""
-
-#: common/models.py:935
-msgid "Show low stock"
-msgstr ""
-
-#: common/models.py:936
-msgid "Show low stock items on the homepage"
-msgstr ""
-
-#: common/models.py:941
-msgid "Show depleted stock"
-msgstr ""
-
-#: common/models.py:942
-msgid "Show depleted stock items on the homepage"
-msgstr ""
-
-#: common/models.py:947
-msgid "Show needed stock"
-msgstr ""
-
-#: common/models.py:948
-msgid "Show stock items needed for builds on the homepage"
-msgstr ""
-
-#: common/models.py:953
-msgid "Show expired stock"
-msgstr ""
-
-#: common/models.py:954
-msgid "Show expired stock items on the homepage"
-msgstr ""
-
-#: common/models.py:959
-msgid "Show stale stock"
-msgstr ""
-
-#: common/models.py:960
-msgid "Show stale stock items on the homepage"
-msgstr ""
-
-#: common/models.py:965
-msgid "Show pending builds"
-msgstr ""
-
-#: common/models.py:966
-msgid "Show pending builds on the homepage"
-msgstr ""
-
-#: common/models.py:971
-msgid "Show overdue builds"
-msgstr "显示逾期生产"
-
-#: common/models.py:972
-msgid "Show overdue builds on the homepage"
-msgstr "在主页上显示逾期的生产"
-
-#: common/models.py:977
-msgid "Show outstanding POs"
-msgstr ""
-
-#: common/models.py:978
-msgid "Show outstanding POs on the homepage"
-msgstr ""
-
-#: common/models.py:983
-msgid "Show overdue POs"
-msgstr ""
-
-#: common/models.py:984
-msgid "Show overdue POs on the homepage"
-msgstr ""
-
-#: common/models.py:989
-msgid "Show outstanding SOs"
-msgstr ""
-
-#: common/models.py:990
-msgid "Show outstanding SOs on the homepage"
-msgstr ""
-
-#: common/models.py:995
-msgid "Show overdue SOs"
-msgstr ""
-
-#: common/models.py:996
-msgid "Show overdue SOs on the homepage"
+#: common/models.py:1001
+msgid "Show subscribed parts"
msgstr ""
#: common/models.py:1002
+msgid "Show subscribed parts on the homepage"
+msgstr ""
+
+#: common/models.py:1007
+msgid "Show subscribed categories"
+msgstr ""
+
+#: common/models.py:1008
+msgid "Show subscribed part categories on the homepage"
+msgstr ""
+
+#: common/models.py:1013
+msgid "Show latest parts"
+msgstr "显示最近商品"
+
+#: common/models.py:1014
+msgid "Show latest parts on the homepage"
+msgstr "在主页上显示最近商品"
+
+#: common/models.py:1019
+msgid "Recent Part Count"
+msgstr ""
+
+#: common/models.py:1020
+msgid "Number of recent parts to display on index page"
+msgstr ""
+
+#: common/models.py:1026
+msgid "Show unvalidated BOMs"
+msgstr ""
+
+#: common/models.py:1027
+msgid "Show BOMs that await validation on the homepage"
+msgstr ""
+
+#: common/models.py:1032
+msgid "Show recent stock changes"
+msgstr ""
+
+#: common/models.py:1033
+msgid "Show recently changed stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1038
+msgid "Recent Stock Count"
+msgstr ""
+
+#: common/models.py:1039
+msgid "Number of recent stock items to display on index page"
+msgstr ""
+
+#: common/models.py:1044
+msgid "Show low stock"
+msgstr ""
+
+#: common/models.py:1045
+msgid "Show low stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1050
+msgid "Show depleted stock"
+msgstr ""
+
+#: common/models.py:1051
+msgid "Show depleted stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1056
+msgid "Show needed stock"
+msgstr ""
+
+#: common/models.py:1057
+msgid "Show stock items needed for builds on the homepage"
+msgstr ""
+
+#: common/models.py:1062
+msgid "Show expired stock"
+msgstr ""
+
+#: common/models.py:1063
+msgid "Show expired stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1068
+msgid "Show stale stock"
+msgstr ""
+
+#: common/models.py:1069
+msgid "Show stale stock items on the homepage"
+msgstr ""
+
+#: common/models.py:1074
+msgid "Show pending builds"
+msgstr ""
+
+#: common/models.py:1075
+msgid "Show pending builds on the homepage"
+msgstr ""
+
+#: common/models.py:1080
+msgid "Show overdue builds"
+msgstr "显示逾期生产"
+
+#: common/models.py:1081
+msgid "Show overdue builds on the homepage"
+msgstr "在主页上显示逾期的生产"
+
+#: common/models.py:1086
+msgid "Show outstanding POs"
+msgstr ""
+
+#: common/models.py:1087
+msgid "Show outstanding POs on the homepage"
+msgstr ""
+
+#: common/models.py:1092
+msgid "Show overdue POs"
+msgstr ""
+
+#: common/models.py:1093
+msgid "Show overdue POs on the homepage"
+msgstr ""
+
+#: common/models.py:1098
+msgid "Show outstanding SOs"
+msgstr ""
+
+#: common/models.py:1099
+msgid "Show outstanding SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1104
+msgid "Show overdue SOs"
+msgstr ""
+
+#: common/models.py:1105
+msgid "Show overdue SOs on the homepage"
+msgstr ""
+
+#: common/models.py:1111
msgid "Inline label display"
msgstr "内嵌标签显示"
-#: common/models.py:1003
+#: common/models.py:1112
msgid "Display PDF labels in the browser, instead of downloading as a file"
msgstr "在浏览器中显示 PDF 标签,而不是以文件形式下载"
-#: common/models.py:1009
+#: common/models.py:1118
msgid "Inline report display"
msgstr ""
-#: common/models.py:1010
+#: common/models.py:1119
msgid "Display PDF reports in the browser, instead of downloading as a file"
msgstr "在浏览器中显示 PDF 报告,而不是以文件形式下载"
-#: common/models.py:1016
+#: common/models.py:1125
msgid "Search Preview Results"
msgstr "搜索预览结果"
-#: common/models.py:1017
+#: common/models.py:1126
msgid "Number of results to show in search preview window"
msgstr "搜索预览窗口中显示的结果数"
-#: common/models.py:1023
+#: common/models.py:1132
+msgid "Search Show Stock"
+msgstr ""
+
+#: common/models.py:1133
+msgid "Display stock levels in search preview window"
+msgstr ""
+
+#: common/models.py:1139
+msgid "Hide Inactive Parts"
+msgstr ""
+
+#: common/models.py:1140
+msgid "Hide inactive parts in search preview window"
+msgstr ""
+
+#: common/models.py:1146
msgid "Show Quantity in Forms"
msgstr "在表格中显示数量"
-#: common/models.py:1024
+#: common/models.py:1147
msgid "Display available part quantity in some forms"
msgstr "在某些表格中显示可用的商品数量"
-#: common/models.py:1030
+#: common/models.py:1153
msgid "Escape Key Closes Forms"
msgstr ""
-#: common/models.py:1031
+#: common/models.py:1154
msgid "Use the escape key to close modal forms"
msgstr ""
-#: common/models.py:1088 company/forms.py:43
+#: common/models.py:1160
+msgid "Fixed Navbar"
+msgstr ""
+
+#: common/models.py:1161
+msgid "InvenTree navbar position is fixed to the top of the screen"
+msgstr ""
+
+#: common/models.py:1226 company/forms.py:43
msgid "Price break quantity"
msgstr ""
-#: common/models.py:1095 company/templates/company/supplier_part.html:231
-#: templates/js/translated/part.js:1369
+#: common/models.py:1233 company/serializers.py:264
+#: company/templates/company/supplier_part.html:256
+#: templates/js/translated/part.js:1620
msgid "Price"
msgstr "价格"
-#: common/models.py:1096
+#: common/models.py:1234
msgid "Unit price at specified quantity"
msgstr ""
-#: common/models.py:1189
-msgid "Default"
-msgstr "默认"
-
-#: common/templates/common/edit_setting.html:11
-msgid "Current value"
-msgstr "当前数值"
-
-#: common/views.py:33
-msgid "Change Setting"
-msgstr "更改设置"
-
-#: common/views.py:119
-msgid "Supplied value is not allowed"
-msgstr "提供的值不被允许"
-
-#: common/views.py:128
-msgid "Supplied value must be a boolean"
-msgstr "提供的值必须为布尔值"
-
-#: common/views.py:138
-msgid "Change User Setting"
-msgstr "更改用户设置"
-
-#: common/views.py:213 order/templates/order/order_wizard/po_upload.html:42
+#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:42
#: order/templates/order/po_navbar.html:19
#: order/templates/order/po_navbar.html:22
-#: order/templates/order/purchase_order_detail.html:27 order/views.py:289
-#: part/templates/part/bom_upload/upload_file.html:65
-#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:268
-#: part/views.py:882
+#: order/templates/order/purchase_order_detail.html:24 order/views.py:289
+#: part/templates/part/bom_upload/upload_file.html:52
+#: part/templates/part/import_wizard/part_upload.html:45 part/views.py:212
+#: part/views.py:854
msgid "Upload File"
msgstr "上传文件"
-#: common/views.py:214 order/templates/order/order_wizard/match_fields.html:52
+#: common/views.py:94 order/templates/order/order_wizard/match_fields.html:52
#: order/views.py:290 part/templates/part/bom_upload/match_fields.html:52
#: part/templates/part/import_wizard/ajax_match_fields.html:45
-#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:269
-#: part/views.py:883
+#: part/templates/part/import_wizard/match_fields.html:52 part/views.py:213
+#: part/views.py:855
msgid "Match Fields"
msgstr "匹配字段"
-#: common/views.py:215
+#: common/views.py:95
msgid "Match Items"
msgstr "匹配项"
-#: common/views.py:560
+#: common/views.py:440
msgid "Fields matching failed"
msgstr "字段匹配失败"
-#: common/views.py:615
+#: common/views.py:495
msgid "Parts imported"
msgstr "已导入商品"
-#: common/views.py:637 order/templates/order/order_wizard/match_fields.html:27
+#: common/views.py:517 order/templates/order/order_wizard/match_fields.html:27
#: order/templates/order/order_wizard/match_parts.html:19
#: order/templates/order/order_wizard/po_upload.html:40
#: part/templates/part/bom_upload/match_fields.html:27
#: part/templates/part/bom_upload/match_parts.html:19
-#: part/templates/part/bom_upload/upload_file.html:63
+#: part/templates/part/bom_upload/upload_file.html:50
#: part/templates/part/import_wizard/match_fields.html:27
#: part/templates/part/import_wizard/match_references.html:19
#: part/templates/part/import_wizard/part_upload.html:43
@@ -2296,7 +2227,7 @@ msgid "Description of the company"
msgstr "公司简介"
#: company/models.py:112 company/templates/company/company_base.html:70
-#: templates/js/translated/company.js:348
+#: templates/js/translated/company.js:349
msgid "Website"
msgstr "网站"
@@ -2321,6 +2252,7 @@ msgid "Contact phone number"
msgstr "联系电话"
#: company/models.py:125 company/templates/company/company_base.html:102
+#: templates/InvenTree/settings/user.html:46
msgid "Email"
msgstr "电子邮件"
@@ -2337,10 +2269,10 @@ msgid "Point of contact"
msgstr ""
#: company/models.py:131 company/models.py:348 company/models.py:564
-#: order/models.py:160 part/models.py:715
+#: order/models.py:163 part/models.py:797
#: report/templates/report/inventree_build_order_base.html:165
-#: templates/js/translated/company.js:536
-#: templates/js/translated/company.js:825 templates/js/translated/part.js:983
+#: templates/js/translated/company.js:537
+#: templates/js/translated/company.js:826 templates/js/translated/part.js:1077
msgid "Link"
msgstr "链接"
@@ -2348,7 +2280,7 @@ msgstr "链接"
msgid "Link to external company information"
msgstr "链接到外部公司信息"
-#: company/models.py:139 part/models.py:725
+#: company/models.py:139 part/models.py:807
msgid "Image"
msgstr "图片"
@@ -2376,8 +2308,8 @@ msgstr "是制造商"
msgid "Does this company manufacture parts?"
msgstr "该公司制造商品吗?"
-#: company/models.py:152 company/serializers.py:264
-#: company/templates/company/company_base.html:76 stock/serializers.py:158
+#: company/models.py:152 company/serializers.py:270
+#: company/templates/company/company_base.html:76 stock/serializers.py:172
msgid "Currency"
msgstr "货币"
@@ -2385,8 +2317,8 @@ msgstr "货币"
msgid "Default currency used for this company"
msgstr "该公司使用的默认货币"
-#: company/models.py:320 company/models.py:535 stock/models.py:454
-#: stock/templates/stock/item_base.html:237
+#: company/models.py:320 company/models.py:535 stock/models.py:484
+#: stock/templates/stock/item_base.html:224
msgid "Base Part"
msgstr ""
@@ -2395,28 +2327,28 @@ msgid "Select part"
msgstr "选择商品"
#: company/models.py:335 company/templates/company/company_base.html:116
-#: company/templates/company/manufacturer_part.html:89
-#: company/templates/company/supplier_part.html:98 part/bom.py:170
-#: part/bom.py:247 stock/templates/stock/item_base.html:366
-#: templates/js/translated/company.js:332
-#: templates/js/translated/company.js:513
-#: templates/js/translated/company.js:796 templates/js/translated/part.js:227
+#: company/templates/company/manufacturer_part.html:93
+#: company/templates/company/supplier_part.html:104
+#: stock/templates/stock/item_base.html:353
+#: templates/js/translated/company.js:333
+#: templates/js/translated/company.js:514
+#: templates/js/translated/company.js:797 templates/js/translated/part.js:229
msgid "Manufacturer"
msgstr "制造商"
-#: company/models.py:336 templates/js/translated/part.js:228
+#: company/models.py:336 templates/js/translated/part.js:230
msgid "Select manufacturer"
msgstr "选择制造商"
-#: company/models.py:342 company/templates/company/manufacturer_part.html:93
-#: company/templates/company/supplier_part.html:106 part/bom.py:171
-#: part/bom.py:248 templates/js/translated/company.js:529
-#: templates/js/translated/company.js:814 templates/js/translated/order.js:851
-#: templates/js/translated/part.js:238
+#: company/models.py:342 company/templates/company/manufacturer_part.html:97
+#: company/templates/company/supplier_part.html:112
+#: templates/js/translated/company.js:530
+#: templates/js/translated/company.js:815 templates/js/translated/order.js:852
+#: templates/js/translated/part.js:240
msgid "MPN"
msgstr "MPN"
-#: company/models.py:343 templates/js/translated/part.js:239
+#: company/models.py:343 templates/js/translated/part.js:241
msgid "Manufacturer Part Number"
msgstr "制造商商品编号"
@@ -2431,7 +2363,7 @@ msgstr "制造商商品描述"
#: company/models.py:409 company/models.py:558
#: company/templates/company/manufacturer_part.html:6
#: company/templates/company/manufacturer_part.html:23
-#: stock/templates/stock/item_base.html:376
+#: stock/templates/stock/item_base.html:363
msgid "Manufacturer Part"
msgstr "制造商商品"
@@ -2441,9 +2373,8 @@ msgstr "参数名称"
#: company/models.py:422
#: report/templates/report/inventree_test_report_base.html:90
-#: stock/models.py:1816 templates/InvenTree/settings/header.html:8
-#: templates/js/translated/company.js:643 templates/js/translated/part.js:623
-#: templates/js/translated/stock.js:555
+#: stock/models.py:1867 templates/js/translated/company.js:644
+#: templates/js/translated/part.js:645 templates/js/translated/stock.js:848
msgid "Value"
msgstr "数值"
@@ -2451,8 +2382,10 @@ msgstr "数值"
msgid "Parameter value"
msgstr "参数值"
-#: company/models.py:429 part/models.py:800 part/models.py:2224
-#: templates/js/translated/company.js:649 templates/js/translated/part.js:629
+#: company/models.py:429 part/models.py:882 part/models.py:2397
+#: part/templates/part/detail.html:59
+#: templates/InvenTree/settings/settings.html:264
+#: templates/js/translated/company.js:650 templates/js/translated/part.js:651
msgid "Units"
msgstr "单位"
@@ -2465,27 +2398,27 @@ msgid "Linked manufacturer part must reference the same base part"
msgstr ""
#: company/models.py:545 company/templates/company/company_base.html:121
-#: company/templates/company/supplier_part.html:88 order/models.py:260
-#: order/templates/order/order_base.html:92
-#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:175
-#: part/bom.py:292 stock/templates/stock/item_base.html:383
-#: templates/js/translated/company.js:336
-#: templates/js/translated/company.js:770 templates/js/translated/order.js:659
-#: templates/js/translated/part.js:208
+#: company/templates/company/supplier_part.html:94 order/models.py:263
+#: order/templates/order/order_base.html:108
+#: order/templates/order/order_wizard/select_pos.html:30 part/bom.py:219
+#: part/bom.py:247 stock/templates/stock/item_base.html:370
+#: templates/js/translated/company.js:337
+#: templates/js/translated/company.js:771 templates/js/translated/order.js:660
+#: templates/js/translated/part.js:210
msgid "Supplier"
msgstr "供应商"
-#: company/models.py:546 templates/js/translated/part.js:209
+#: company/models.py:546 templates/js/translated/part.js:211
msgid "Select supplier"
msgstr "选择供应商"
-#: company/models.py:551 company/templates/company/supplier_part.html:92
-#: part/bom.py:176 part/bom.py:293 templates/js/translated/order.js:838
-#: templates/js/translated/part.js:219
+#: company/models.py:551 company/templates/company/supplier_part.html:98
+#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:839
+#: templates/js/translated/part.js:221
msgid "SKU"
msgstr "SKU"
-#: company/models.py:552 templates/js/translated/part.js:220
+#: company/models.py:552 templates/js/translated/part.js:222
msgid "Supplier stock keeping unit"
msgstr ""
@@ -2501,23 +2434,23 @@ msgstr "外部供货商商品链接URL"
msgid "Supplier part description"
msgstr "供应商商品描述"
-#: company/models.py:576 company/templates/company/supplier_part.html:120
-#: part/models.py:2389 report/templates/report/inventree_po_report.html:93
+#: company/models.py:576 company/templates/company/supplier_part.html:126
+#: part/models.py:2588 report/templates/report/inventree_po_report.html:93
#: report/templates/report/inventree_so_report.html:93
msgid "Note"
msgstr "备注"
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "base cost"
msgstr ""
-#: company/models.py:580 part/models.py:1603
+#: company/models.py:580 part/models.py:1748
msgid "Minimum charge (e.g. stocking fee)"
msgstr "最低收费(例如库存费)"
-#: company/models.py:582 company/templates/company/supplier_part.html:113
-#: stock/models.py:478 stock/templates/stock/item_base.html:324
-#: templates/js/translated/company.js:846 templates/js/translated/stock.js:1036
+#: company/models.py:582 company/templates/company/supplier_part.html:119
+#: stock/models.py:507 stock/templates/stock/item_base.html:311
+#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1336
msgid "Packaging"
msgstr "打包"
@@ -2525,7 +2458,7 @@ msgstr "打包"
msgid "Part packaging"
msgstr "商品打包"
-#: company/models.py:584 part/models.py:1605
+#: company/models.py:584 part/models.py:1750
msgid "multiple"
msgstr ""
@@ -2533,47 +2466,43 @@ msgstr ""
msgid "Order multiple"
msgstr ""
-#: company/serializers.py:68
+#: company/serializers.py:70
msgid "Default currency used for this supplier"
msgstr "该公司使用的默认货币"
-#: company/serializers.py:69
+#: company/serializers.py:71
msgid "Currency Code"
msgstr "货币代码"
-#: company/templates/company/company_base.html:9
-#: company/templates/company/company_base.html:35
-#: templates/InvenTree/search.html:208 templates/js/translated/company.js:321
+#: company/templates/company/company_base.html:8
+#: company/templates/company/company_base.html:12
+#: templates/InvenTree/search.html:182 templates/js/translated/company.js:322
msgid "Company"
msgstr "公司"
-#: company/templates/company/company_base.html:25
-#: part/templates/part/part_thumb.html:21
-msgid "Upload new image"
-msgstr "上传新图片"
-
-#: company/templates/company/company_base.html:27
-#: part/templates/part/part_thumb.html:23
-msgid "Download image from URL"
-msgstr "从 URL 下载图片"
-
-#: company/templates/company/company_base.html:46
-#: templates/js/translated/order.js:120
+#: company/templates/company/company_base.html:22
+#: templates/js/translated/order.js:121
msgid "Create Purchase Order"
msgstr "创建采购订单"
-#: company/templates/company/company_base.html:51
+#: company/templates/company/company_base.html:27
msgid "Edit company information"
msgstr "编辑公司信息"
-#: company/templates/company/company_base.html:56
-#: company/templates/company/company_base.html:153
+#: company/templates/company/company_base.html:32
+#: company/templates/company/company_base.html:148
msgid "Delete Company"
msgstr "删除该公司"
-#: company/templates/company/company_base.html:64
-msgid "Company Details"
-msgstr "公司详细信息"
+#: company/templates/company/company_base.html:48
+#: part/templates/part/part_thumb.html:12
+msgid "Upload new image"
+msgstr "上传新图片"
+
+#: company/templates/company/company_base.html:51
+#: part/templates/part/part_thumb.html:14
+msgid "Download image from URL"
+msgstr "从 URL 下载图片"
#: company/templates/company/company_base.html:81
msgid "Uses default currency"
@@ -2583,145 +2512,140 @@ msgstr "使用默认货币"
msgid "Phone"
msgstr "电话"
-#: company/templates/company/company_base.html:126 order/models.py:558
-#: order/templates/order/sales_order_base.html:99 stock/models.py:496
-#: stock/models.py:497 stock/templates/stock/item_base.html:276
-#: templates/js/translated/company.js:328 templates/js/translated/order.js:1038
-#: templates/js/translated/stock.js:1587
+#: company/templates/company/company_base.html:126 order/models.py:567
+#: order/templates/order/sales_order_base.html:114 stock/models.py:525
+#: stock/models.py:526 stock/templates/stock/item_base.html:263
+#: templates/js/translated/company.js:329 templates/js/translated/order.js:1051
+#: templates/js/translated/stock.js:1972
msgid "Customer"
msgstr "客户"
-#: company/templates/company/company_base.html:199
-#: part/templates/part/part_base.html:424
+#: company/templates/company/company_base.html:194
+#: part/templates/part/part_base.html:342
msgid "Upload Image"
msgstr "上传图片"
-#: company/templates/company/detail.html:14
-#: company/templates/company/manufacturer_part_navbar.html:18
-#: templates/InvenTree/search.html:150
+#: company/templates/company/detail.html:15
+#: company/templates/company/manufacturer_part_sidebar.html:7
+#: templates/InvenTree/search.html:124
msgid "Supplier Parts"
msgstr "供应商商品"
-#: company/templates/company/detail.html:22
+#: company/templates/company/detail.html:19
#: order/templates/order/order_wizard/select_parts.html:44
msgid "Create new supplier part"
msgstr "创建新的供应商商品"
-#: company/templates/company/detail.html:23
-#: company/templates/company/manufacturer_part.html:109
-#: part/templates/part/detail.html:289
+#: company/templates/company/detail.html:20
+#: company/templates/company/manufacturer_part.html:112
+#: part/templates/part/detail.html:440
msgid "New Supplier Part"
msgstr "新建供应商商品"
-#: company/templates/company/detail.html:27
-#: company/templates/company/detail.html:67
-#: company/templates/company/manufacturer_part.html:112
-#: company/templates/company/manufacturer_part.html:136
-#: part/templates/part/category.html:135 part/templates/part/detail.html:292
-#: part/templates/part/detail.html:315
+#: company/templates/company/detail.html:32
+#: company/templates/company/detail.html:79
+#: company/templates/company/manufacturer_part.html:121
+#: company/templates/company/manufacturer_part.html:150
+#: part/templates/part/category.html:160 part/templates/part/detail.html:449
+#: part/templates/part/detail.html:477
msgid "Options"
msgstr "选项"
-#: company/templates/company/detail.html:32
-#: company/templates/company/detail.html:72
-#: part/templates/part/category.html:140
+#: company/templates/company/detail.html:37
+#: company/templates/company/detail.html:84
+#: part/templates/part/category.html:166
msgid "Order parts"
msgstr "订购商品"
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:42
+#: company/templates/company/detail.html:89
msgid "Delete parts"
msgstr "删除商品"
-#: company/templates/company/detail.html:35
-#: company/templates/company/detail.html:75
+#: company/templates/company/detail.html:43
+#: company/templates/company/detail.html:90
msgid "Delete Parts"
msgstr "删除商品"
-#: company/templates/company/detail.html:54 templates/InvenTree/search.html:135
+#: company/templates/company/detail.html:62 templates/InvenTree/search.html:109
msgid "Manufacturer Parts"
msgstr "制造商商品"
-#: company/templates/company/detail.html:62
+#: company/templates/company/detail.html:66
msgid "Create new manufacturer part"
msgstr "新建制造商商品"
-#: company/templates/company/detail.html:63 part/templates/part/detail.html:312
+#: company/templates/company/detail.html:67 part/templates/part/detail.html:467
msgid "New Manufacturer Part"
msgstr "新建制造商商品"
-#: company/templates/company/detail.html:93
+#: company/templates/company/detail.html:107
msgid "Supplier Stock"
msgstr "供货商库存"
-#: company/templates/company/detail.html:102
-#: company/templates/company/navbar.html:46
-#: company/templates/company/navbar.html:49
+#: company/templates/company/detail.html:117
+#: company/templates/company/sidebar.html:12
+#: company/templates/company/supplier_part_sidebar.html:7
+#: order/templates/order/order_base.html:13
#: order/templates/order/purchase_orders.html:8
-#: order/templates/order/purchase_orders.html:13
-#: part/templates/part/detail.html:50 part/templates/part/navbar.html:82
-#: part/templates/part/navbar.html:85 templates/InvenTree/index.html:260
-#: templates/InvenTree/search.html:229
-#: templates/InvenTree/settings/navbar.html:119
-#: templates/InvenTree/settings/navbar.html:121 templates/navbar.html:44
+#: order/templates/order/purchase_orders.html:12
+#: part/templates/part/detail.html:171 part/templates/part/part_sidebar.html:35
+#: templates/InvenTree/index.html:252 templates/InvenTree/search.html:203
+#: templates/InvenTree/settings/sidebar.html:44 templates/navbar.html:45
#: users/models.py:45
msgid "Purchase Orders"
msgstr "采购订单"
-#: company/templates/company/detail.html:108
-#: order/templates/order/purchase_orders.html:20
+#: company/templates/company/detail.html:121
+#: order/templates/order/purchase_orders.html:17
msgid "Create new purchase order"
msgstr "新建采购订单"
-#: company/templates/company/detail.html:109
-#: order/templates/order/purchase_orders.html:21
+#: company/templates/company/detail.html:122
+#: order/templates/order/purchase_orders.html:18
msgid "New Purchase Order"
msgstr "新建采购订单"
-#: company/templates/company/detail.html:124
-#: company/templates/company/navbar.html:55
-#: company/templates/company/navbar.html:58
+#: company/templates/company/detail.html:143
+#: company/templates/company/sidebar.html:20
+#: order/templates/order/sales_order_base.html:13
#: order/templates/order/sales_orders.html:8
-#: order/templates/order/sales_orders.html:13
-#: part/templates/part/detail.html:71 part/templates/part/navbar.html:91
-#: part/templates/part/navbar.html:94 templates/InvenTree/index.html:291
-#: templates/InvenTree/search.html:249
-#: templates/InvenTree/settings/navbar.html:125
-#: templates/InvenTree/settings/navbar.html:127 templates/navbar.html:55
+#: order/templates/order/sales_orders.html:15
+#: part/templates/part/detail.html:194 part/templates/part/part_sidebar.html:39
+#: templates/InvenTree/index.html:283 templates/InvenTree/search.html:223
+#: templates/InvenTree/settings/sidebar.html:46 templates/navbar.html:56
#: users/models.py:46
msgid "Sales Orders"
msgstr "销售订单"
-#: company/templates/company/detail.html:130
+#: company/templates/company/detail.html:147
#: order/templates/order/sales_orders.html:20
msgid "Create new sales order"
msgstr "新建销售订单"
-#: company/templates/company/detail.html:131
+#: company/templates/company/detail.html:148
#: order/templates/order/sales_orders.html:21
msgid "New Sales Order"
msgstr "新建销售订单"
-#: company/templates/company/detail.html:147
-#: company/templates/company/navbar.html:61
-#: company/templates/company/navbar.html:64
-#: templates/js/translated/build.js:622
+#: company/templates/company/detail.html:168
+#: templates/js/translated/build.js:999
msgid "Assigned Stock"
msgstr ""
-#: company/templates/company/detail.html:165
+#: company/templates/company/detail.html:184
msgid "Company Notes"
msgstr "公司备注"
-#: company/templates/company/detail.html:364
-#: company/templates/company/manufacturer_part.html:200
-#: part/templates/part/detail.html:357
+#: company/templates/company/detail.html:383
+#: company/templates/company/manufacturer_part.html:209
+#: part/templates/part/detail.html:520
msgid "Delete Supplier Parts?"
msgstr "删除供应商商品?"
-#: company/templates/company/detail.html:365
-#: company/templates/company/manufacturer_part.html:201
-#: part/templates/part/detail.html:358
+#: company/templates/company/detail.html:384
+#: company/templates/company/manufacturer_part.html:210
+#: part/templates/part/detail.html:521
msgid "All selected supplier parts will be deleted"
msgstr "删除所有选定的供应商商品"
@@ -2729,227 +2653,223 @@ msgstr "删除所有选定的供应商商品"
msgid "Supplier List"
msgstr "供应商列表"
-#: company/templates/company/manufacturer_part.html:40
-#: company/templates/company/supplier_part.html:40
-#: company/templates/company/supplier_part.html:146
-#: part/templates/part/detail.html:55 part/templates/part/part_base.html:116
+#: company/templates/company/manufacturer_part.html:14 company/views.py:55
+#: part/templates/part/prices.html:167 templates/InvenTree/search.html:184
+#: templates/navbar.html:44
+msgid "Manufacturers"
+msgstr "制造商"
+
+#: company/templates/company/manufacturer_part.html:35
+#: company/templates/company/supplier_part.html:34
+#: company/templates/company/supplier_part.html:159
+#: part/templates/part/detail.html:174 part/templates/part/part_base.html:76
msgid "Order part"
msgstr "订购商品"
-#: company/templates/company/manufacturer_part.html:45
-#: templates/js/translated/company.js:561
+#: company/templates/company/manufacturer_part.html:40
+#: templates/js/translated/company.js:562
msgid "Edit manufacturer part"
msgstr "编辑制造商商品"
-#: company/templates/company/manufacturer_part.html:49
-#: templates/js/translated/company.js:562
+#: company/templates/company/manufacturer_part.html:44
+#: templates/js/translated/company.js:563
msgid "Delete manufacturer part"
msgstr "删除生产商商品"
-#: company/templates/company/manufacturer_part.html:61
-msgid "Manufacturer Part Details"
-msgstr "制造商商品详细信息"
-
-#: company/templates/company/manufacturer_part.html:66
-#: company/templates/company/supplier_part.html:65
+#: company/templates/company/manufacturer_part.html:70
+#: company/templates/company/supplier_part.html:71
msgid "Internal Part"
msgstr "内部商品"
-#: company/templates/company/manufacturer_part.html:103
-#: company/templates/company/manufacturer_part_navbar.html:21
-#: company/views.py:49 part/templates/part/navbar.html:75
-#: part/templates/part/navbar.html:78 part/templates/part/prices.html:163
-#: templates/InvenTree/search.html:220 templates/navbar.html:41
+#: company/templates/company/manufacturer_part.html:108
+#: company/templates/company/supplier_part.html:15 company/views.py:49
+#: part/templates/part/part_sidebar.html:33 part/templates/part/prices.html:163
+#: templates/InvenTree/search.html:194 templates/navbar.html:43
msgid "Suppliers"
msgstr "供应商"
-#: company/templates/company/manufacturer_part.html:114
-#: part/templates/part/detail.html:294
+#: company/templates/company/manufacturer_part.html:123
+#: part/templates/part/detail.html:451
msgid "Delete supplier parts"
msgstr "删除供应商商品"
-#: company/templates/company/manufacturer_part.html:114
-#: company/templates/company/manufacturer_part.html:138
-#: company/templates/company/manufacturer_part.html:239
-#: part/templates/part/detail.html:214 part/templates/part/detail.html:294
-#: part/templates/part/detail.html:317 templates/js/translated/company.js:424
-#: templates/js/translated/helpers.js:31 users/models.py:199
+#: company/templates/company/manufacturer_part.html:123
+#: company/templates/company/manufacturer_part.html:152
+#: company/templates/company/manufacturer_part.html:248
+#: part/templates/part/detail.html:451 part/templates/part/detail.html:479
+#: templates/js/translated/company.js:425 templates/js/translated/helpers.js:31
+#: users/models.py:204
msgid "Delete"
msgstr "删除"
-#: company/templates/company/manufacturer_part.html:127
-#: company/templates/company/manufacturer_part_navbar.html:11
-#: company/templates/company/manufacturer_part_navbar.html:14
-#: part/templates/part/category_navbar.html:38
-#: part/templates/part/category_navbar.html:41
-#: part/templates/part/detail.html:155 part/templates/part/navbar.html:20
-#: part/templates/part/navbar.html:23
+#: company/templates/company/manufacturer_part.html:137
+#: company/templates/company/manufacturer_part_sidebar.html:5
+#: part/templates/part/category_sidebar.html:17
+#: part/templates/part/detail.html:277 part/templates/part/part_sidebar.html:10
msgid "Parameters"
msgstr "参数"
-#: company/templates/company/manufacturer_part.html:133
-#: part/templates/part/detail.html:162
-#: templates/InvenTree/settings/category.html:26
-#: templates/InvenTree/settings/part.html:63
+#: company/templates/company/manufacturer_part.html:141
+#: part/templates/part/detail.html:282
+#: templates/InvenTree/settings/category.html:12
+#: templates/InvenTree/settings/part.html:65
msgid "New Parameter"
msgstr "新建参数"
-#: company/templates/company/manufacturer_part.html:138
+#: company/templates/company/manufacturer_part.html:152
msgid "Delete parameters"
msgstr "删除参数"
-#: company/templates/company/manufacturer_part.html:176
-#: part/templates/part/detail.html:805
+#: company/templates/company/manufacturer_part.html:185
+#: part/templates/part/detail.html:974
msgid "Add Parameter"
msgstr "添加参数"
-#: company/templates/company/manufacturer_part.html:224
+#: company/templates/company/manufacturer_part.html:233
msgid "Selected parameters will be deleted"
msgstr "所选参数将被删除"
-#: company/templates/company/manufacturer_part.html:236
+#: company/templates/company/manufacturer_part.html:245
msgid "Delete Parameters"
msgstr "删除参数"
-#: company/templates/company/manufacturer_part_navbar.html:26
-msgid "Manufacturer Part Stock"
-msgstr "制造商商品库存"
-
-#: company/templates/company/manufacturer_part_navbar.html:29
-#: company/templates/company/navbar.html:39
-#: company/templates/company/supplier_part_navbar.html:15
-#: part/templates/part/navbar.html:38 stock/api.py:52
-#: stock/templates/stock/loc_link.html:7 stock/templates/stock/location.html:36
-#: stock/templates/stock/stock_app_base.html:10
-#: templates/InvenTree/index.html:150 templates/InvenTree/search.html:182
-#: templates/InvenTree/settings/navbar.html:107
-#: templates/InvenTree/settings/navbar.html:109
-#: templates/js/translated/part.js:540 templates/js/translated/part.js:769
-#: templates/js/translated/part.js:945 templates/js/translated/stock.js:182
-#: templates/js/translated/stock.js:829 templates/navbar.html:32
-msgid "Stock"
-msgstr "库存"
-
-#: company/templates/company/manufacturer_part_navbar.html:33
-msgid "Manufacturer Part Orders"
-msgstr "制造商商品订单"
-
-#: company/templates/company/manufacturer_part_navbar.html:36
-#: company/templates/company/supplier_part_navbar.html:22
-msgid "Orders"
-msgstr "订单"
-
-#: company/templates/company/navbar.html:17
-#: company/templates/company/navbar.html:20
+#: company/templates/company/sidebar.html:6
msgid "Manufactured Parts"
-msgstr "制造商商品"
+msgstr ""
-#: company/templates/company/navbar.html:26
-#: company/templates/company/navbar.html:29
+#: company/templates/company/sidebar.html:10
msgid "Supplied Parts"
-msgstr "供应商商品"
+msgstr ""
-#: company/templates/company/navbar.html:36 part/templates/part/navbar.html:35
-#: stock/templates/stock/location.html:119
-#: stock/templates/stock/location.html:134
-#: stock/templates/stock/location.html:148
-#: stock/templates/stock/location_navbar.html:18
-#: stock/templates/stock/location_navbar.html:21
-#: templates/InvenTree/search.html:184 templates/js/translated/stock.js:1486
-#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
-msgid "Stock Items"
-msgstr "库存项"
+#: company/templates/company/sidebar.html:16
+msgid "Supplied Stock Items"
+msgstr ""
+
+#: company/templates/company/sidebar.html:22
+msgid "Assigned Stock Items"
+msgstr ""
#: company/templates/company/supplier_part.html:7
-#: company/templates/company/supplier_part.html:24 stock/models.py:463
-#: stock/templates/stock/item_base.html:388
-#: templates/js/translated/company.js:786 templates/js/translated/stock.js:993
+#: company/templates/company/supplier_part.html:24 stock/models.py:492
+#: stock/templates/stock/item_base.html:375
+#: templates/js/translated/company.js:787 templates/js/translated/stock.js:1293
msgid "Supplier Part"
msgstr "供应商商品"
-#: company/templates/company/supplier_part.html:44
-#: templates/js/translated/company.js:859
+#: company/templates/company/supplier_part.html:38
+#: templates/js/translated/company.js:860
msgid "Edit supplier part"
msgstr "编辑供应商商品"
-#: company/templates/company/supplier_part.html:48
-#: templates/js/translated/company.js:860
+#: company/templates/company/supplier_part.html:42
+#: templates/js/translated/company.js:861
msgid "Delete supplier part"
msgstr "删除供应商商品"
-#: company/templates/company/supplier_part.html:60
-msgid "Supplier Part Details"
-msgstr "供应商商品详细信息"
-
-#: company/templates/company/supplier_part.html:131
+#: company/templates/company/supplier_part.html:138
#: company/templates/company/supplier_part_navbar.html:12
msgid "Supplier Part Stock"
msgstr "供货商商品库存"
-#: company/templates/company/supplier_part.html:140
+#: company/templates/company/supplier_part.html:141
+#: part/templates/part/detail.html:127 stock/templates/stock/location.html:147
+msgid "Create new stock item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:142
+#: part/templates/part/detail.html:128 stock/templates/stock/location.html:148
+#: templates/js/translated/stock.js:324
+msgid "New Stock Item"
+msgstr ""
+
+#: company/templates/company/supplier_part.html:155
#: company/templates/company/supplier_part_navbar.html:19
msgid "Supplier Part Orders"
msgstr "供应商商品订单"
-#: company/templates/company/supplier_part.html:147
-#: part/templates/part/detail.html:56
+#: company/templates/company/supplier_part.html:160
+#: part/templates/part/detail.html:175
msgid "Order Part"
msgstr "订购商品"
-#: company/templates/company/supplier_part.html:158
-#: part/templates/part/navbar.html:67 part/templates/part/prices.html:7
+#: company/templates/company/supplier_part.html:179
+#: part/templates/part/prices.html:7
msgid "Pricing Information"
msgstr "价格信息"
-#: company/templates/company/supplier_part.html:164
-#: company/templates/company/supplier_part.html:265
-#: part/templates/part/prices.html:271 part/views.py:1730
+#: company/templates/company/supplier_part.html:184
+#: company/templates/company/supplier_part.html:290
+#: part/templates/part/prices.html:271 part/views.py:1713
msgid "Add Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:185
+#: company/templates/company/supplier_part.html:210
msgid "No price break information found"
msgstr ""
-#: company/templates/company/supplier_part.html:199 part/views.py:1792
+#: company/templates/company/supplier_part.html:224 part/views.py:1775
msgid "Delete Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:213 part/views.py:1778
+#: company/templates/company/supplier_part.html:238 part/views.py:1761
msgid "Edit Price Break"
msgstr ""
-#: company/templates/company/supplier_part.html:238
+#: company/templates/company/supplier_part.html:263
msgid "Edit price break"
msgstr ""
-#: company/templates/company/supplier_part.html:239
+#: company/templates/company/supplier_part.html:264
msgid "Delete price break"
msgstr ""
+#: company/templates/company/supplier_part_navbar.html:15
+#: part/templates/part/part_sidebar.html:16
+#: stock/templates/stock/loc_link.html:3 stock/templates/stock/location.html:14
+#: stock/templates/stock/stock_app_base.html:10
+#: templates/InvenTree/search.html:156
+#: templates/InvenTree/settings/sidebar.html:40
+#: templates/js/translated/bom.js:216 templates/js/translated/part.js:427
+#: templates/js/translated/part.js:562 templates/js/translated/part.js:878
+#: templates/js/translated/part.js:1039 templates/js/translated/stock.js:479
+#: templates/js/translated/stock.js:1132 templates/navbar.html:26
+msgid "Stock"
+msgstr "库存"
+
+#: company/templates/company/supplier_part_navbar.html:22
+msgid "Orders"
+msgstr "订单"
+
#: company/templates/company/supplier_part_navbar.html:26
+#: company/templates/company/supplier_part_sidebar.html:9
msgid "Supplier Part Pricing"
msgstr "供应商商品价格"
#: company/templates/company/supplier_part_navbar.html:29
+#: part/templates/part/part_sidebar.html:30
msgid "Pricing"
msgstr "定价"
+#: company/templates/company/supplier_part_sidebar.html:5
+#: stock/templates/stock/location.html:118
+#: stock/templates/stock/location.html:132
+#: stock/templates/stock/location.html:144
+#: stock/templates/stock/location_sidebar.html:7
+#: templates/InvenTree/search.html:158 templates/js/translated/stock.js:1871
+#: templates/stats.html:93 templates/stats.html:102 users/models.py:43
+msgid "Stock Items"
+msgstr "库存项"
+
#: company/views.py:50
msgid "New Supplier"
msgstr "新增供应商"
-#: company/views.py:55 part/templates/part/prices.html:167
-#: templates/InvenTree/search.html:210 templates/navbar.html:42
-msgid "Manufacturers"
-msgstr "制造商"
-
#: company/views.py:56
msgid "New Manufacturer"
msgstr "新建制造商"
-#: company/views.py:61 templates/InvenTree/search.html:240
-#: templates/navbar.html:53
+#: company/views.py:61 templates/InvenTree/search.html:214
+#: templates/navbar.html:55
msgid "Customers"
msgstr "客户信息"
@@ -2965,20 +2885,20 @@ msgstr "公司"
msgid "New Company"
msgstr "新建公司信息"
-#: company/views.py:129 part/views.py:608
+#: company/views.py:129 part/views.py:580
msgid "Download Image"
msgstr "下载图片"
-#: company/views.py:158 part/views.py:640
+#: company/views.py:158 part/views.py:612
msgid "Image size exceeds maximum allowable size for download"
msgstr "图像大小超过下载允许的最大尺寸"
-#: company/views.py:165 part/views.py:647
+#: company/views.py:165 part/views.py:619
#, python-brace-format
msgid "Invalid response: {code}"
msgstr "无效响应: {code}"
-#: company/views.py:174 part/views.py:656
+#: company/views.py:174 part/views.py:628
msgid "Supplied URL is not a valid image file"
msgstr "提供的 URL 不是一个有效的图片文件"
@@ -2994,7 +2914,7 @@ msgstr "标签名称"
msgid "Label description"
msgstr "标签说明"
-#: label/models.py:127 stock/forms.py:167
+#: label/models.py:127
msgid "Label"
msgstr "标签"
@@ -3051,240 +2971,236 @@ msgstr "查询筛选器 (逗号分隔的键值对列表"
msgid "Part query filters (comma-separated value of key=value pairs)"
msgstr "商品查询筛选器 (逗号分隔的键值对列表)"
-#: order/api.py:250
-msgid "Matching purchase order does not exist"
-msgstr ""
-
-#: order/forms.py:27 order/templates/order/order_base.html:50
+#: order/forms.py:26 order/templates/order/order_base.html:52
msgid "Place order"
msgstr ""
-#: order/forms.py:38 order/templates/order/order_base.html:57
+#: order/forms.py:37 order/templates/order/order_base.html:59
msgid "Mark order as complete"
msgstr ""
-#: order/forms.py:49 order/forms.py:60 order/templates/order/order_base.html:62
-#: order/templates/order/sales_order_base.html:64
+#: order/forms.py:48 order/forms.py:59 order/templates/order/order_base.html:47
+#: order/templates/order/sales_order_base.html:60
msgid "Cancel order"
msgstr "取消订单"
-#: order/forms.py:71 order/templates/order/sales_order_base.html:61
+#: order/forms.py:70
msgid "Ship order"
msgstr ""
-#: order/forms.py:97
+#: order/forms.py:98
msgid "Enter stock item serial numbers"
msgstr ""
-#: order/forms.py:103
+#: order/forms.py:104
msgid "Enter quantity of stock items"
msgstr ""
-#: order/models.py:158
+#: order/models.py:161
msgid "Order description"
msgstr ""
-#: order/models.py:160
+#: order/models.py:163
msgid "Link to external page"
msgstr ""
-#: order/models.py:168
+#: order/models.py:171
msgid "Created By"
msgstr ""
-#: order/models.py:175
+#: order/models.py:178
msgid "User or group responsible for this order"
msgstr "负责此订单的用户或群组"
-#: order/models.py:180
+#: order/models.py:183
msgid "Order notes"
msgstr ""
-#: order/models.py:247 order/models.py:548
+#: order/models.py:250 order/models.py:557
msgid "Order reference"
msgstr ""
-#: order/models.py:252 order/models.py:563
+#: order/models.py:255 order/models.py:572
msgid "Purchase order status"
msgstr ""
-#: order/models.py:261
+#: order/models.py:264
msgid "Company from which the items are being ordered"
msgstr "订购该商品的公司"
-#: order/models.py:264 order/templates/order/order_base.html:98
-#: templates/js/translated/order.js:668
+#: order/models.py:267 order/templates/order/order_base.html:114
+#: templates/js/translated/order.js:669
msgid "Supplier Reference"
msgstr ""
-#: order/models.py:264
+#: order/models.py:267
msgid "Supplier order reference code"
msgstr ""
-#: order/models.py:271
+#: order/models.py:274
msgid "received by"
msgstr ""
-#: order/models.py:276
+#: order/models.py:279
msgid "Issue Date"
msgstr ""
-#: order/models.py:277
+#: order/models.py:280
msgid "Date order was issued"
msgstr ""
-#: order/models.py:282
+#: order/models.py:285
msgid "Target Delivery Date"
msgstr ""
-#: order/models.py:283
+#: order/models.py:286
msgid "Expected date for order delivery. Order will be overdue after this date."
msgstr ""
-#: order/models.py:289
+#: order/models.py:292
msgid "Date order was completed"
msgstr ""
-#: order/models.py:318
+#: order/models.py:321
msgid "Part supplier must match PO supplier"
msgstr ""
-#: order/models.py:428
+#: order/models.py:431
msgid "Quantity must be an integer"
msgstr "数量必须是整数"
-#: order/models.py:432
+#: order/models.py:435
msgid "Quantity must be a positive number"
msgstr "数量必须大于0"
-#: order/models.py:559
+#: order/models.py:568
msgid "Company to which the items are being sold"
msgstr "向其出售该商品的公司"
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer Reference "
msgstr ""
-#: order/models.py:565
+#: order/models.py:574
msgid "Customer order reference code"
msgstr ""
-#: order/models.py:570
+#: order/models.py:579
msgid "Target date for order completion. Order will be overdue after this date."
msgstr ""
-#: order/models.py:573 templates/js/translated/order.js:1079
+#: order/models.py:582 templates/js/translated/order.js:1092
msgid "Shipment Date"
msgstr ""
-#: order/models.py:580
+#: order/models.py:589
msgid "shipped by"
msgstr ""
-#: order/models.py:624
+#: order/models.py:633
msgid "SalesOrder cannot be shipped as it is not currently pending"
msgstr ""
-#: order/models.py:721
+#: order/models.py:730
msgid "Item quantity"
msgstr ""
-#: order/models.py:727
+#: order/models.py:736
msgid "Line item reference"
msgstr ""
-#: order/models.py:729
+#: order/models.py:738
msgid "Line item notes"
msgstr ""
-#: order/models.py:759 order/models.py:847
-#: templates/js/translated/order.js:1131
+#: order/models.py:768 order/models.py:856
+#: templates/js/translated/order.js:1144
msgid "Order"
msgstr ""
-#: order/models.py:760 order/templates/order/order_base.html:9
-#: order/templates/order/order_base.html:24
+#: order/models.py:769 order/templates/order/order_base.html:9
+#: order/templates/order/order_base.html:18
#: report/templates/report/inventree_po_report.html:77
-#: stock/templates/stock/item_base.html:338
-#: templates/js/translated/order.js:637 templates/js/translated/stock.js:970
-#: templates/js/translated/stock.js:1568
+#: stock/templates/stock/item_base.html:325
+#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1270
+#: templates/js/translated/stock.js:1953
msgid "Purchase Order"
msgstr ""
-#: order/models.py:781
+#: order/models.py:790
msgid "Supplier part"
msgstr "供应商商品"
-#: order/models.py:788 order/templates/order/order_base.html:131
-#: order/templates/order/sales_order_base.html:138
-#: templates/js/translated/order.js:428 templates/js/translated/order.js:919
+#: order/models.py:797 order/templates/order/order_base.html:147
+#: order/templates/order/sales_order_base.html:154
+#: templates/js/translated/order.js:429 templates/js/translated/order.js:932
msgid "Received"
msgstr ""
-#: order/models.py:789
+#: order/models.py:798
msgid "Number of items received"
msgstr ""
-#: order/models.py:796 part/templates/part/prices.html:176 stock/models.py:588
-#: stock/serializers.py:150 stock/templates/stock/item_base.html:345
-#: templates/js/translated/stock.js:1024
+#: order/models.py:805 part/templates/part/prices.html:176 stock/models.py:619
+#: stock/serializers.py:163 stock/templates/stock/item_base.html:332
+#: templates/js/translated/stock.js:1324
msgid "Purchase Price"
msgstr "采购价格"
-#: order/models.py:797
+#: order/models.py:806
msgid "Unit purchase price"
msgstr ""
-#: order/models.py:805
+#: order/models.py:814
msgid "Where does the Purchaser want this item to be stored?"
msgstr ""
-#: order/models.py:857 part/templates/part/part_pricing.html:112
+#: order/models.py:866 part/templates/part/part_pricing.html:112
#: part/templates/part/prices.html:116 part/templates/part/prices.html:284
msgid "Sale Price"
msgstr "销售价格"
-#: order/models.py:858
+#: order/models.py:867
msgid "Unit sale price"
msgstr ""
-#: order/models.py:937 order/models.py:939
+#: order/models.py:946 order/models.py:948
msgid "Stock item has not been assigned"
msgstr ""
-#: order/models.py:943
+#: order/models.py:952
msgid "Cannot allocate stock item to a line with a different part"
msgstr ""
-#: order/models.py:945
+#: order/models.py:954
msgid "Cannot allocate stock to a line without a part"
msgstr ""
-#: order/models.py:948
+#: order/models.py:957
msgid "Allocation quantity cannot exceed stock quantity"
msgstr ""
-#: order/models.py:952
+#: order/models.py:961
msgid "StockItem is over-allocated"
msgstr ""
-#: order/models.py:958
+#: order/models.py:967
msgid "Quantity must be 1 for serialized stock item"
msgstr ""
-#: order/models.py:966
+#: order/models.py:975
msgid "Line"
msgstr ""
-#: order/models.py:978
+#: order/models.py:987
msgid "Item"
msgstr ""
-#: order/models.py:979
+#: order/models.py:988
msgid "Select stock item to allocate"
msgstr ""
-#: order/models.py:982
+#: order/models.py:991
msgid "Enter stock allocation quantity"
msgstr ""
@@ -3300,7 +3216,7 @@ msgstr ""
msgid "Line item does not match purchase order"
msgstr ""
-#: order/serializers.py:218 order/serializers.py:285
+#: order/serializers.py:218 order/serializers.py:286
msgid "Select destination location for received items"
msgstr ""
@@ -3312,72 +3228,70 @@ msgstr ""
msgid "Unique identifier field"
msgstr ""
-#: order/serializers.py:259
+#: order/serializers.py:260
msgid "Barcode is already in use"
msgstr ""
-#: order/serializers.py:297
+#: order/serializers.py:298
msgid "Line items must be provided"
msgstr ""
-#: order/serializers.py:314
+#: order/serializers.py:315
msgid "Destination location must be specified"
msgstr ""
-#: order/serializers.py:325
+#: order/serializers.py:326
msgid "Supplied barcode values must be unique"
msgstr ""
-#: order/serializers.py:569
+#: order/serializers.py:568
msgid "Sale price currency"
msgstr ""
#: order/templates/order/delete_attachment.html:5
#: stock/templates/stock/attachment_delete.html:5
-#: templates/attachment_delete.html:5
msgid "Are you sure you want to delete this attachment?"
msgstr ""
-#: order/templates/order/order_base.html:39
-#: order/templates/order/sales_order_base.html:50
-msgid "Print"
+#: order/templates/order/order_base.html:33
+msgid "Print purchase order report"
msgstr ""
-#: order/templates/order/order_base.html:42
-#: order/templates/order/sales_order_base.html:53
+#: order/templates/order/order_base.html:35
+#: order/templates/order/sales_order_base.html:45
msgid "Export order to file"
msgstr ""
-#: order/templates/order/order_base.html:46
-#: order/templates/order/sales_order_base.html:57
-msgid "Edit order information"
+#: order/templates/order/order_base.html:41
+#: order/templates/order/sales_order_base.html:54
+msgid "Order actions"
msgstr ""
-#: order/templates/order/order_base.html:54
+#: order/templates/order/order_base.html:45
+#: order/templates/order/sales_order_base.html:58
+msgid "Edit order"
+msgstr ""
+
+#: order/templates/order/order_base.html:56
msgid "Receive items"
msgstr ""
-#: order/templates/order/order_base.html:72
-#: order/templates/order/po_navbar.html:12
-msgid "Purchase Order Details"
-msgstr ""
-
-#: order/templates/order/order_base.html:77
-#: order/templates/order/sales_order_base.html:84
+#: order/templates/order/order_base.html:93
+#: order/templates/order/sales_order_base.html:98
msgid "Order Reference"
msgstr ""
-#: order/templates/order/order_base.html:82
-#: order/templates/order/sales_order_base.html:89
+#: order/templates/order/order_base.html:98
+#: order/templates/order/sales_order_base.html:103
msgid "Order Status"
msgstr ""
-#: order/templates/order/order_base.html:117
+#: order/templates/order/order_base.html:133
#: report/templates/report/inventree_build_order_base.html:122
msgid "Issued"
msgstr ""
-#: order/templates/order/order_base.html:185
+#: order/templates/order/order_base.html:203
msgid "Edit Purchase Order"
msgstr ""
@@ -3453,7 +3367,8 @@ msgstr ""
#: part/templates/part/import_wizard/ajax_match_references.html:42
#: part/templates/part/import_wizard/match_fields.html:71
#: part/templates/part/import_wizard/match_references.html:49
-#: templates/js/translated/build.js:869 templates/js/translated/order.js:376
+#: templates/js/translated/build.js:240 templates/js/translated/build.js:1251
+#: templates/js/translated/order.js:377
msgid "Remove row"
msgstr "移除行"
@@ -3480,7 +3395,7 @@ msgid "Upload File for Purchase Order"
msgstr ""
#: order/templates/order/order_wizard/po_upload.html:18
-#: part/templates/part/bom_upload/upload_file.html:34
+#: part/templates/part/bom_upload/upload_file.html:21
#: part/templates/part/import_wizard/ajax_part_upload.html:10
#: part/templates/part/import_wizard/part_upload.html:21
#, python-format
@@ -3530,7 +3445,7 @@ msgid "Select existing purchase orders, or create new orders."
msgstr ""
#: order/templates/order/order_wizard/select_pos.html:31
-#: templates/js/translated/order.js:694 templates/js/translated/order.js:1084
+#: templates/js/translated/order.js:695 templates/js/translated/order.js:1097
msgid "Items"
msgstr ""
@@ -3550,28 +3465,48 @@ msgstr ""
#: order/templates/order/po_attachments.html:12
#: order/templates/order/po_navbar.html:32
-#: order/templates/order/purchase_order_detail.html:56
msgid "Purchase Order Attachments"
msgstr ""
+#: order/templates/order/po_navbar.html:12
+msgid "Purchase Order Details"
+msgstr ""
+
+#: order/templates/order/po_navbar.html:15
+#: part/templates/part/part_sidebar.html:8
+#: templates/js/translated/stock.js:1919
+msgid "Details"
+msgstr "详情"
+
#: order/templates/order/po_navbar.html:26
msgid "Received Stock Items"
msgstr ""
#: order/templates/order/po_navbar.html:29
#: order/templates/order/po_received_items.html:12
-#: order/templates/order/purchase_order_detail.html:47
+#: order/templates/order/purchase_order_detail.html:50
msgid "Received Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:17
+#: order/templates/order/po_sidebar.html:5
+#: order/templates/order/so_sidebar.html:5
+#: report/templates/report/inventree_po_report.html:85
+#: report/templates/report/inventree_so_report.html:85
+msgid "Line Items"
+msgstr ""
+
+#: order/templates/order/po_sidebar.html:7
+msgid "Received Stock"
+msgstr ""
+
+#: order/templates/order/purchase_order_detail.html:18
msgid "Purchase Order Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:24
-#: order/templates/order/purchase_order_detail.html:212
+#: order/templates/order/purchase_order_detail.html:27
+#: order/templates/order/purchase_order_detail.html:216
#: order/templates/order/sales_order_detail.html:23
-#: order/templates/order/sales_order_detail.html:177
+#: order/templates/order/sales_order_detail.html:191
msgid "Add Line Item"
msgstr ""
@@ -3583,34 +3518,39 @@ msgstr ""
msgid "Receive Items"
msgstr ""
-#: order/templates/order/purchase_order_detail.html:67
-#: order/templates/order/sales_order_detail.html:54
+#: order/templates/order/purchase_order_detail.html:76
+#: order/templates/order/sales_order_detail.html:68
msgid "Order Notes"
msgstr ""
-#: order/templates/order/purchase_orders.html:24
-#: order/templates/order/sales_orders.html:24
+#: order/templates/order/purchase_orders.html:30
+#: order/templates/order/sales_orders.html:33
msgid "Print Order Reports"
msgstr "打印订单报表"
-#: order/templates/order/sales_order_base.html:16
+#: order/templates/order/sales_order_base.html:43
+msgid "Print sales order report"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:47
+msgid "Print packing list"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:66
+#: order/templates/order/sales_order_base.html:67 order/views.py:222
+msgid "Ship Order"
+msgstr ""
+
+#: order/templates/order/sales_order_base.html:86
msgid "This Sales Order has not been fully allocated"
msgstr ""
-#: order/templates/order/sales_order_base.html:70
-msgid "Packing List"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:79
-msgid "Sales Order Details"
-msgstr ""
-
-#: order/templates/order/sales_order_base.html:105
-#: templates/js/translated/order.js:1051
+#: order/templates/order/sales_order_base.html:121
+#: templates/js/translated/order.js:1064
msgid "Customer Reference"
msgstr ""
-#: order/templates/order/sales_order_base.html:183
+#: order/templates/order/sales_order_base.html:194
msgid "Edit Sales Order"
msgstr ""
@@ -3625,7 +3565,7 @@ msgstr "警告"
msgid "Cancelling this order means that the order will no longer be editable."
msgstr ""
-#: order/templates/order/sales_order_detail.html:17
+#: order/templates/order/sales_order_detail.html:18
msgid "Sales Order Items"
msgstr ""
@@ -3653,18 +3593,6 @@ msgstr ""
msgid "Allocate stock items by serial number"
msgstr ""
-#: order/templates/order/so_navbar.html:12
-msgid "Sales Order Line Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:15
-msgid "Order Items"
-msgstr ""
-
-#: order/templates/order/so_navbar.html:26
-msgid "Sales Order Attachments"
-msgstr ""
-
#: order/views.py:103
msgid "Cancel Order"
msgstr "取消订单"
@@ -3705,10 +3633,6 @@ msgstr ""
msgid "Purchase order completed"
msgstr ""
-#: order/views.py:222
-msgid "Ship Order"
-msgstr ""
-
#: order/views.py:238
msgid "Confirm order shipment"
msgstr ""
@@ -3776,40 +3700,28 @@ msgstr ""
msgid "Updated {part} unit-price to {price} and quantity to {qty}"
msgstr ""
-#: part/api.py:54 part/models.py:299 part/templates/part/cat_link.html:7
-#: part/templates/part/category.html:108 part/templates/part/category.html:122
-#: part/templates/part/category_navbar.html:21
-#: part/templates/part/category_navbar.html:24
-#: templates/InvenTree/index.html:102 templates/InvenTree/search.html:114
-#: templates/InvenTree/settings/navbar.html:95
-#: templates/InvenTree/settings/navbar.html:97
-#: templates/js/translated/part.js:1165 templates/navbar.html:29
-#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
-msgid "Parts"
-msgstr "商品"
-
-#: part/api.py:700
+#: part/api.py:731
msgid "Must be greater than zero"
msgstr "必须大于0"
-#: part/api.py:704
+#: part/api.py:735
msgid "Must be a valid quantity"
msgstr "必须是有效的数量"
-#: part/api.py:719
+#: part/api.py:750
msgid "Specify location for initial part stock"
msgstr "指定初始初始商品仓储地点"
-#: part/api.py:750 part/api.py:754 part/api.py:769 part/api.py:773
+#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804
msgid "This field is required"
msgstr "此字段为必填"
-#: part/bom.py:133 part/models.py:76 part/models.py:734
-#: part/templates/part/category.html:75 part/templates/part/part_base.html:290
+#: part/bom.py:125 part/models.py:81 part/models.py:816
+#: part/templates/part/category.html:90 part/templates/part/detail.html:104
msgid "Default Location"
msgstr "默认仓储地点"
-#: part/bom.py:134 part/templates/part/part_base.html:156
+#: part/bom.py:126 part/templates/part/part_base.html:167
msgid "Available Stock"
msgstr "可用库存"
@@ -3869,7 +3781,7 @@ msgstr "包含供应商数据"
msgid "Include part supplier data in exported BOM"
msgstr "在导出 BOM 中包含供应商数据"
-#: part/forms.py:96 part/models.py:2254
+#: part/forms.py:96 part/models.py:2427
msgid "Parent Part"
msgstr ""
@@ -3893,463 +3805,465 @@ msgstr ""
msgid "Confirm that the BOM is correct"
msgstr "确认BOM 正确"
-#: part/forms.py:170
-msgid "Related Part"
-msgstr ""
-
-#: part/forms.py:177
+#: part/forms.py:163
msgid "Select part category"
msgstr "选择类别"
-#: part/forms.py:226
+#: part/forms.py:200
msgid "Add parameter template to same level categories"
msgstr ""
-#: part/forms.py:230
+#: part/forms.py:204
msgid "Add parameter template to all categories"
msgstr ""
-#: part/forms.py:250
+#: part/forms.py:224
msgid "Input quantity for price calculation"
msgstr ""
-#: part/models.py:77
+#: part/models.py:82
msgid "Default location for parts in this category"
msgstr "此类别商品的默认仓储地点"
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords"
msgstr ""
-#: part/models.py:80
+#: part/models.py:85
msgid "Default keywords for parts in this category"
msgstr "此类别商品的默认关键字"
-#: part/models.py:90 part/models.py:2300
+#: part/models.py:95 part/models.py:2473 part/templates/part/category.html:11
#: part/templates/part/part_app_base.html:10
msgid "Part Category"
msgstr "商品类别"
-#: part/models.py:91 part/templates/part/category.html:32
-#: part/templates/part/category.html:103 templates/InvenTree/search.html:127
-#: templates/stats.html:84 users/models.py:40
+#: part/models.py:96 part/templates/part/category.html:117
+#: templates/InvenTree/search.html:101 templates/stats.html:84
+#: users/models.py:40
msgid "Part Categories"
msgstr "商品类别"
-#: part/models.py:384
+#: part/models.py:358 part/templates/part/cat_link.html:3
+#: part/templates/part/category.html:13 part/templates/part/category.html:122
+#: part/templates/part/category.html:142
+#: part/templates/part/category_sidebar.html:9
+#: templates/InvenTree/index.html:85 templates/InvenTree/search.html:88
+#: templates/InvenTree/settings/sidebar.html:36
+#: templates/js/translated/part.js:1416 templates/navbar.html:19
+#: templates/stats.html:80 templates/stats.html:89 users/models.py:41
+msgid "Parts"
+msgstr "商品"
+
+#: part/models.py:450
msgid "Invalid choice for parent part"
msgstr ""
-#: part/models.py:436 part/models.py:448
+#: part/models.py:502 part/models.py:514
#, python-brace-format
msgid "Part '{p1}' is used in BOM for '{p2}' (recursive)"
msgstr ""
-#: part/models.py:545
+#: part/models.py:611
msgid "Next available serial numbers are"
msgstr ""
-#: part/models.py:549
+#: part/models.py:615
msgid "Next available serial number is"
msgstr ""
-#: part/models.py:554
+#: part/models.py:620
msgid "Most recent serial number is"
msgstr ""
-#: part/models.py:633
+#: part/models.py:715
msgid "Duplicate IPN not allowed in part settings"
msgstr "在商品设置中不允许重复的IPN"
-#: part/models.py:658
+#: part/models.py:740
msgid "Part name"
msgstr "商品名称"
-#: part/models.py:665
+#: part/models.py:747
msgid "Is Template"
msgstr ""
-#: part/models.py:666
+#: part/models.py:748
msgid "Is this part a template part?"
msgstr ""
-#: part/models.py:676
+#: part/models.py:758
msgid "Is this part a variant of another part?"
msgstr ""
-#: part/models.py:677
+#: part/models.py:759
msgid "Variant Of"
msgstr ""
-#: part/models.py:683
+#: part/models.py:765
msgid "Part description"
msgstr "商品描述"
-#: part/models.py:688 part/templates/part/category.html:82
-#: part/templates/part/part_base.html:259
+#: part/models.py:770 part/templates/part/category.html:97
+#: part/templates/part/detail.html:73
msgid "Keywords"
msgstr "关键词"
-#: part/models.py:689
+#: part/models.py:771
msgid "Part keywords to improve visibility in search results"
msgstr "提高搜索结果可见性的关键字"
-#: part/models.py:696 part/models.py:2299
-#: part/templates/part/set_category.html:15
-#: templates/InvenTree/settings/settings.html:169
-#: templates/js/translated/part.js:927
+#: part/models.py:778 part/models.py:2223 part/models.py:2472
+#: part/templates/part/detail.html:36 part/templates/part/set_category.html:15
+#: templates/InvenTree/settings/settings.html:163
+#: templates/js/translated/part.js:1021
msgid "Category"
msgstr "类别"
-#: part/models.py:697
+#: part/models.py:779
msgid "Part category"
msgstr "商品类别"
-#: part/models.py:702 part/templates/part/part_base.html:235
-#: templates/js/translated/part.js:528 templates/js/translated/part.js:760
+#: part/models.py:784 part/templates/part/detail.html:45
+#: templates/js/translated/part.js:550 templates/js/translated/part.js:974
+#: templates/js/translated/stock.js:1104
msgid "IPN"
msgstr ""
-#: part/models.py:703
+#: part/models.py:785
msgid "Internal Part Number"
msgstr "内部商品编号"
-#: part/models.py:709
+#: part/models.py:791
msgid "Part revision or version number"
msgstr "商品版本号"
-#: part/models.py:710 part/templates/part/part_base.html:252
-#: report/models.py:200 templates/js/translated/part.js:532
+#: part/models.py:792 part/templates/part/detail.html:52 report/models.py:200
+#: templates/js/translated/part.js:554
msgid "Revision"
msgstr ""
-#: part/models.py:732
+#: part/models.py:814
msgid "Where is this item normally stored?"
msgstr ""
-#: part/models.py:779 part/templates/part/part_base.html:297
+#: part/models.py:861 part/templates/part/detail.html:113
msgid "Default Supplier"
msgstr ""
-#: part/models.py:780
+#: part/models.py:862
msgid "Default supplier part"
msgstr "默认供应商商品"
-#: part/models.py:787
+#: part/models.py:869
msgid "Default Expiry"
msgstr ""
-#: part/models.py:788
+#: part/models.py:870
msgid "Expiry time (in days) for stock items of this part"
msgstr ""
-#: part/models.py:793
+#: part/models.py:875 part/templates/part/part_base.html:178
msgid "Minimum Stock"
msgstr "最低库存"
-#: part/models.py:794
+#: part/models.py:876
msgid "Minimum allowed stock level"
msgstr ""
-#: part/models.py:801
+#: part/models.py:883
msgid "Stock keeping units for this part"
msgstr ""
-#: part/models.py:807
+#: part/models.py:889
msgid "Can this part be built from other parts?"
msgstr ""
-#: part/models.py:813
+#: part/models.py:895
msgid "Can this part be used to build other parts?"
msgstr ""
-#: part/models.py:819
+#: part/models.py:901
msgid "Does this part have tracking for unique items?"
msgstr ""
-#: part/models.py:824
+#: part/models.py:906
msgid "Can this part be purchased from external suppliers?"
msgstr ""
-#: part/models.py:829
+#: part/models.py:911
msgid "Can this part be sold to customers?"
msgstr "此商品可以销售给客户吗?"
-#: part/models.py:833 templates/js/translated/table_filters.js:34
-#: templates/js/translated/table_filters.js:82
-#: templates/js/translated/table_filters.js:268
-#: templates/js/translated/table_filters.js:346
+#: part/models.py:915 templates/js/translated/table_filters.js:34
+#: templates/js/translated/table_filters.js:96
+#: templates/js/translated/table_filters.js:290
+#: templates/js/translated/table_filters.js:368
msgid "Active"
msgstr ""
-#: part/models.py:834
+#: part/models.py:916
msgid "Is this part active?"
msgstr ""
-#: part/models.py:839
+#: part/models.py:921
msgid "Is this a virtual part, such as a software product or license?"
msgstr "这是一个虚拟商品,如软件产品或许可证吗?"
-#: part/models.py:844
+#: part/models.py:926
msgid "Part notes - supports Markdown formatting"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "BOM checksum"
msgstr ""
-#: part/models.py:847
+#: part/models.py:929
msgid "Stored BOM checksum"
msgstr ""
-#: part/models.py:850
+#: part/models.py:932
msgid "BOM checked by"
msgstr ""
-#: part/models.py:852
+#: part/models.py:934
msgid "BOM checked date"
msgstr ""
-#: part/models.py:856
+#: part/models.py:938
msgid "Creation User"
msgstr "新建用户"
-#: part/models.py:1605
+#: part/models.py:1750
msgid "Sell multiple"
msgstr ""
-#: part/models.py:2100
+#: part/models.py:2273
msgid "Test templates can only be created for trackable parts"
msgstr ""
-#: part/models.py:2117
+#: part/models.py:2290
msgid "Test with this name already exists for this part"
msgstr ""
-#: part/models.py:2137 templates/js/translated/part.js:1216
-#: templates/js/translated/stock.js:535
+#: part/models.py:2310 templates/js/translated/part.js:1467
+#: templates/js/translated/stock.js:828
msgid "Test Name"
msgstr ""
-#: part/models.py:2138
+#: part/models.py:2311
msgid "Enter a name for the test"
msgstr ""
-#: part/models.py:2143
+#: part/models.py:2316
msgid "Test Description"
msgstr ""
-#: part/models.py:2144
+#: part/models.py:2317
msgid "Enter description for this test"
msgstr ""
-#: part/models.py:2149 templates/js/translated/part.js:1225
-#: templates/js/translated/table_filters.js:254
+#: part/models.py:2322 templates/js/translated/part.js:1476
+#: templates/js/translated/table_filters.js:276
msgid "Required"
msgstr ""
-#: part/models.py:2150
+#: part/models.py:2323
msgid "Is this test required to pass?"
msgstr ""
-#: part/models.py:2155 templates/js/translated/part.js:1233
+#: part/models.py:2328 templates/js/translated/part.js:1484
msgid "Requires Value"
msgstr ""
-#: part/models.py:2156
+#: part/models.py:2329
msgid "Does this test require a value when adding a test result?"
msgstr ""
-#: part/models.py:2161 templates/js/translated/part.js:1240
+#: part/models.py:2334 templates/js/translated/part.js:1491
msgid "Requires Attachment"
msgstr ""
-#: part/models.py:2162
+#: part/models.py:2335
msgid "Does this test require a file attachment when adding a test result?"
msgstr ""
-#: part/models.py:2173
+#: part/models.py:2346
#, python-brace-format
msgid "Illegal character in template name ({c})"
msgstr ""
-#: part/models.py:2209
+#: part/models.py:2382
msgid "Parameter template name must be unique"
msgstr ""
-#: part/models.py:2217
+#: part/models.py:2390
msgid "Parameter Name"
msgstr ""
-#: part/models.py:2224
+#: part/models.py:2397
msgid "Parameter Units"
msgstr ""
-#: part/models.py:2256 part/models.py:2305 part/models.py:2306
-#: templates/InvenTree/settings/settings.html:164
+#: part/models.py:2429 part/models.py:2478 part/models.py:2479
+#: templates/InvenTree/settings/settings.html:158
msgid "Parameter Template"
msgstr "参数模板"
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Data"
msgstr ""
-#: part/models.py:2258
+#: part/models.py:2431
msgid "Parameter Value"
msgstr ""
-#: part/models.py:2310 templates/InvenTree/settings/settings.html:173
+#: part/models.py:2483 templates/InvenTree/settings/settings.html:167
msgid "Default Value"
msgstr "默认值"
-#: part/models.py:2311
+#: part/models.py:2484
msgid "Default Parameter Value"
msgstr ""
-#: part/models.py:2362
+#: part/models.py:2561
msgid "Select parent part"
msgstr ""
-#: part/models.py:2370
+#: part/models.py:2569
msgid "Sub part"
msgstr ""
-#: part/models.py:2371
+#: part/models.py:2570
msgid "Select part to be used in BOM"
msgstr ""
-#: part/models.py:2377
+#: part/models.py:2576
msgid "BOM quantity for this BOM item"
msgstr ""
-#: part/models.py:2379 templates/js/translated/bom.js:275
-#: templates/js/translated/bom.js:335
+#: part/models.py:2578 templates/js/translated/bom.js:454
+#: templates/js/translated/bom.js:528
+#: templates/js/translated/table_filters.js:92
msgid "Optional"
msgstr "可选项"
-#: part/models.py:2379
+#: part/models.py:2578
msgid "This BOM item is optional"
msgstr ""
-#: part/models.py:2382
+#: part/models.py:2581
msgid "Overage"
msgstr ""
-#: part/models.py:2383
+#: part/models.py:2582
msgid "Estimated build wastage quantity (absolute or percentage)"
msgstr ""
-#: part/models.py:2386
+#: part/models.py:2585
msgid "BOM item reference"
msgstr ""
-#: part/models.py:2389
+#: part/models.py:2588
msgid "BOM item notes"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "Checksum"
msgstr ""
-#: part/models.py:2391
+#: part/models.py:2590
msgid "BOM line checksum"
msgstr ""
-#: part/models.py:2395 templates/js/translated/bom.js:352
-#: templates/js/translated/bom.js:359
+#: part/models.py:2594 templates/js/translated/bom.js:545
+#: templates/js/translated/bom.js:552
#: templates/js/translated/table_filters.js:68
+#: templates/js/translated/table_filters.js:88
msgid "Inherited"
msgstr "继承项"
-#: part/models.py:2396
+#: part/models.py:2595
msgid "This BOM item is inherited by BOMs for variant parts"
msgstr ""
-#: part/models.py:2401 templates/js/translated/bom.js:344
+#: part/models.py:2600 templates/js/translated/bom.js:537
msgid "Allow Variants"
msgstr ""
-#: part/models.py:2402
+#: part/models.py:2601
msgid "Stock items for variant parts can be used for this BOM item"
msgstr ""
-#: part/models.py:2487 stock/models.py:341
+#: part/models.py:2686 stock/models.py:371
msgid "Quantity must be integer value for trackable parts"
msgstr ""
-#: part/models.py:2496 part/models.py:2498
+#: part/models.py:2695 part/models.py:2697
msgid "Sub part must be specified"
msgstr ""
-#: part/models.py:2620
+#: part/models.py:2826
+msgid "BOM Item Substitute"
+msgstr ""
+
+#: part/models.py:2848
+msgid "Substitute part cannot be the same as the master part"
+msgstr ""
+
+#: part/models.py:2860
+msgid "Parent BOM item"
+msgstr ""
+
+#: part/models.py:2868
+msgid "Substitute part"
+msgstr ""
+
+#: part/models.py:2879
msgid "Part 1"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Part 2"
msgstr ""
-#: part/models.py:2624
+#: part/models.py:2883
msgid "Select Related Part"
msgstr ""
-#: part/models.py:2656
+#: part/models.py:2915
msgid "Error creating relationship: check that the part is not related to itself and that the relationship is unique"
msgstr ""
+#: part/tasks.py:53
+msgid "Low stock notification"
+msgstr ""
+
#: part/templates/part/bom.html:6
msgid "You do not have permission to edit the BOM."
msgstr ""
-#: part/templates/part/bom.html:14
+#: part/templates/part/bom.html:15
#, python-format
msgid "The BOM for %(part)s has changed, and must be validated.
"
msgstr ""
-#: part/templates/part/bom.html:16
+#: part/templates/part/bom.html:17
#, python-format
msgid "The BOM for %(part)s was last checked by %(checker)s on %(check_date)s"
msgstr ""
-#: part/templates/part/bom.html:20
+#: part/templates/part/bom.html:21
#, python-format
msgid "The BOM for %(part)s has not been validated."
msgstr ""
-#: part/templates/part/bom.html:27
-msgid "Remove selected BOM items"
-msgstr ""
-
-#: part/templates/part/bom.html:30
-msgid "Import BOM data"
+#: part/templates/part/bom.html:30 part/templates/part/detail.html:357
+msgid "BOM actions"
msgstr ""
#: part/templates/part/bom.html:34
-msgid "Copy BOM from parent part"
-msgstr ""
-
-#: part/templates/part/bom.html:38
-msgid "New BOM Item"
-msgstr ""
-
-#: part/templates/part/bom.html:41
-msgid "Finish Editing"
-msgstr ""
-
-#: part/templates/part/bom.html:46
-msgid "Edit BOM"
-msgstr ""
-
-#: part/templates/part/bom.html:50
-msgid "Validate Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:56 part/views.py:1220
-msgid "Export Bill of Materials"
-msgstr ""
-
-#: part/templates/part/bom.html:59
-msgid "Print BOM Report"
+msgid "Delete Items"
msgstr ""
#: part/templates/part/bom_duplicate.html:13
@@ -4360,28 +4274,27 @@ msgstr ""
msgid "Select Part"
msgstr "选择商品"
-#: part/templates/part/bom_upload/upload_file.html:13
-#: part/templates/part/bom_upload/upload_file.html:16
-msgid "Return To BOM"
+#: part/templates/part/bom_upload/upload_file.html:8
+msgid "Return to BOM"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:27
+#: part/templates/part/bom_upload/upload_file.html:13
msgid "Upload Bill of Materials"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:46
+#: part/templates/part/bom_upload/upload_file.html:33
msgid "Requirements for BOM upload"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "The BOM file must contain the required named columns as provided in the "
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:48
+#: part/templates/part/bom_upload/upload_file.html:35
msgid "BOM Upload Template"
msgstr ""
-#: part/templates/part/bom_upload/upload_file.html:49
+#: part/templates/part/bom_upload/upload_file.html:36
msgid "Each part must already exist in the database"
msgstr "每个商品必须已经存在于数据库"
@@ -4394,93 +4307,104 @@ msgstr ""
msgid "This will validate each line in the BOM."
msgstr ""
-#: part/templates/part/category.html:33
-msgid "All parts"
-msgstr "所有商品"
+#: part/templates/part/category.html:24 part/templates/part/category.html:28
+msgid "You are subscribed to notifications for this category"
+msgstr ""
+
+#: part/templates/part/category.html:32
+msgid "Subscribe to notifications for this category"
+msgstr ""
#: part/templates/part/category.html:38
+msgid "Category Actions"
+msgstr ""
+
+#: part/templates/part/category.html:43
+msgid "Edit category"
+msgstr ""
+
+#: part/templates/part/category.html:44
+msgid "Edit Category"
+msgstr ""
+
+#: part/templates/part/category.html:48
+msgid "Delete category"
+msgstr ""
+
+#: part/templates/part/category.html:49
+msgid "Delete Category"
+msgstr ""
+
+#: part/templates/part/category.html:57
msgid "Create new part category"
msgstr "新建商品类别"
-#: part/templates/part/category.html:44
-msgid "Edit part category"
-msgstr "编辑商品类别"
+#: part/templates/part/category.html:58
+msgid "New Category"
+msgstr ""
-#: part/templates/part/category.html:49
-msgid "Delete part category"
-msgstr "删除类别"
+#: part/templates/part/category.html:67
+msgid "Top level part category"
+msgstr ""
-#: part/templates/part/category.html:59 part/templates/part/category.html:98
-msgid "Category Details"
-msgstr "类别详细信息"
-
-#: part/templates/part/category.html:64
+#: part/templates/part/category.html:79
msgid "Category Path"
msgstr "类别路径"
-#: part/templates/part/category.html:69
+#: part/templates/part/category.html:84
msgid "Category Description"
msgstr "类别说明"
-#: part/templates/part/category.html:88 part/templates/part/category.html:175
-#: part/templates/part/category_navbar.html:14
-#: part/templates/part/category_navbar.html:17
+#: part/templates/part/category.html:103 part/templates/part/category.html:194
+#: part/templates/part/category_sidebar.html:7
msgid "Subcategories"
msgstr "子类别"
-#: part/templates/part/category.html:93
+#: part/templates/part/category.html:108
msgid "Parts (Including subcategories)"
msgstr "商品 (包括子类别)"
-#: part/templates/part/category.html:126
+#: part/templates/part/category.html:145
msgid "Export Part Data"
msgstr "导出商品数据"
-#: part/templates/part/category.html:127 part/templates/part/category.html:142
+#: part/templates/part/category.html:146 part/templates/part/category.html:170
msgid "Export"
msgstr "导出"
-#: part/templates/part/category.html:130
+#: part/templates/part/category.html:149
msgid "Create new part"
msgstr "新建商品"
-#: part/templates/part/category.html:131 templates/js/translated/bom.js:39
+#: part/templates/part/category.html:150 templates/js/translated/bom.js:40
msgid "New Part"
msgstr "新商品"
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set category"
msgstr "设置类别"
-#: part/templates/part/category.html:138
+#: part/templates/part/category.html:164
msgid "Set Category"
msgstr "设置类别"
-#: part/templates/part/category.html:141
+#: part/templates/part/category.html:168
msgid "Print Labels"
msgstr "打印标签"
-#: part/templates/part/category.html:142
+#: part/templates/part/category.html:170
msgid "Export Data"
msgstr "导出数据"
-#: part/templates/part/category.html:146
-msgid "View list display"
-msgstr "列表视图"
-
-#: part/templates/part/category.html:149
-msgid "View grid display"
-msgstr "网格视图"
-
-#: part/templates/part/category.html:165
+#: part/templates/part/category.html:184
msgid "Part Parameters"
msgstr "商品参数"
-#: part/templates/part/category.html:254
+#: part/templates/part/category.html:261
msgid "Create Part Category"
msgstr "创建商品类别"
-#: part/templates/part/category.html:281
+#: part/templates/part/category.html:288
msgid "Create Part"
msgstr "创建商品"
@@ -4519,12 +4443,11 @@ msgstr "如果删除此类别,这些商品将移至其父类别 %(path)s"
msgid "If this category is deleted, these parts will be moved to the top-level category Teile"
msgstr ""
-#: part/templates/part/category_navbar.html:29
-#: part/templates/part/category_navbar.html:32
+#: part/templates/part/category_sidebar.html:13
msgid "Import Parts"
-msgstr "导入商品"
+msgstr ""
-#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:363
+#: part/templates/part/copy_part.html:9 templates/js/translated/part.js:366
msgid "Duplicate Part"
msgstr "复制部件"
@@ -4549,128 +4472,166 @@ msgid "%(full_name)s - %(desc)s (%(match_per)s%% match)"
msgstr ""
#: part/templates/part/detail.html:16
+msgid "Part Details"
+msgstr ""
+
+#: part/templates/part/detail.html:66
+msgid "Minimum stock level"
+msgstr ""
+
+#: part/templates/part/detail.html:97
+msgid "Latest Serial Number"
+msgstr ""
+
+#: part/templates/part/detail.html:124
msgid "Part Stock"
msgstr "商品库存"
-#: part/templates/part/detail.html:21
+#: part/templates/part/detail.html:136
#, python-format
msgid "Showing stock for all variants of %(full_name)s"
msgstr ""
-#: part/templates/part/detail.html:30 part/templates/part/navbar.html:99
+#: part/templates/part/detail.html:146
msgid "Part Test Templates"
msgstr ""
-#: part/templates/part/detail.html:36
+#: part/templates/part/detail.html:151
msgid "Add Test Template"
msgstr ""
-#: part/templates/part/detail.html:77
-msgid "New sales order"
-msgstr ""
-
-#: part/templates/part/detail.html:77
-msgid "New Order"
-msgstr ""
-
-#: part/templates/part/detail.html:90
+#: part/templates/part/detail.html:208
msgid "Sales Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:130 part/templates/part/navbar.html:27
+#: part/templates/part/detail.html:249
msgid "Part Variants"
msgstr ""
-#: part/templates/part/detail.html:137
+#: part/templates/part/detail.html:253
msgid "Create new variant"
msgstr ""
-#: part/templates/part/detail.html:138
+#: part/templates/part/detail.html:254
msgid "New Variant"
msgstr ""
-#: part/templates/part/detail.html:161
+#: part/templates/part/detail.html:281
msgid "Add new parameter"
msgstr ""
-#: part/templates/part/detail.html:182 part/templates/part/navbar.html:107
-#: part/templates/part/navbar.html:110
+#: part/templates/part/detail.html:315 part/templates/part/part_sidebar.html:47
msgid "Related Parts"
msgstr ""
-#: part/templates/part/detail.html:188
+#: part/templates/part/detail.html:319 part/templates/part/detail.html:320
msgid "Add Related"
msgstr ""
-#: part/templates/part/detail.html:228 part/templates/part/navbar.html:43
-#: part/templates/part/navbar.html:46
+#: part/templates/part/detail.html:340 part/templates/part/part_sidebar.html:19
msgid "Bill of Materials"
msgstr ""
-#: part/templates/part/detail.html:237
+#: part/templates/part/detail.html:345
+msgid "Export actions"
+msgstr ""
+
+#: part/templates/part/detail.html:349
+msgid "Export BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:351
+msgid "Print BOM Report"
+msgstr ""
+
+#: part/templates/part/detail.html:361
+msgid "Upload BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:363 templates/js/translated/part.js:267
+msgid "Copy BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:365 part/views.py:751
+msgid "Validate BOM"
+msgstr ""
+
+#: part/templates/part/detail.html:370
+msgid "New BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:371
+msgid "Add BOM Item"
+msgstr ""
+
+#: part/templates/part/detail.html:384
msgid "Assemblies"
msgstr ""
-#: part/templates/part/detail.html:253
+#: part/templates/part/detail.html:401
msgid "Part Builds"
msgstr ""
-#: part/templates/part/detail.html:260
-msgid "Start New Build"
-msgstr ""
-
-#: part/templates/part/detail.html:274
+#: part/templates/part/detail.html:426
msgid "Build Order Allocations"
msgstr ""
-#: part/templates/part/detail.html:283
+#: part/templates/part/detail.html:436
msgid "Part Suppliers"
msgstr "商品供应商"
-#: part/templates/part/detail.html:305
+#: part/templates/part/detail.html:463
msgid "Part Manufacturers"
msgstr "商品制造商"
-#: part/templates/part/detail.html:317
+#: part/templates/part/detail.html:479
msgid "Delete manufacturer parts"
msgstr "删除制造商商品"
-#: part/templates/part/detail.html:502
+#: part/templates/part/detail.html:660
msgid "Delete selected BOM items?"
msgstr ""
-#: part/templates/part/detail.html:503
+#: part/templates/part/detail.html:661
msgid "All selected BOM items will be deleted"
msgstr ""
-#: part/templates/part/detail.html:554
+#: part/templates/part/detail.html:712
msgid "Create BOM Item"
msgstr ""
-#: part/templates/part/detail.html:699
+#: part/templates/part/detail.html:764
+msgid "Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:770
+msgid "Add Related Part"
+msgstr ""
+
+#: part/templates/part/detail.html:867
msgid "Add Test Result Template"
msgstr ""
-#: part/templates/part/detail.html:755
+#: part/templates/part/detail.html:924
msgid "Edit Part Notes"
msgstr "编辑商品注释"
-#: part/templates/part/detail.html:907
+#: part/templates/part/detail.html:1076
#, python-format
msgid "Purchase Unit Price - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:919
+#: part/templates/part/detail.html:1088
#, python-format
msgid "Unit Price-Cost Difference - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:931
+#: part/templates/part/detail.html:1100
#, python-format
msgid "Supplier Unit Cost - %(currency)s"
msgstr ""
-#: part/templates/part/detail.html:1020
+#: part/templates/part/detail.html:1189
#, python-format
msgid "Unit Price - %(currency)s"
msgstr ""
@@ -4684,176 +4645,150 @@ msgstr ""
msgid "Import Parts from File"
msgstr "从文件导入商品"
-#: part/templates/part/navbar.html:30
-msgid "Variants"
-msgstr ""
-
-#: part/templates/part/navbar.html:59 part/templates/part/navbar.html:62
-msgid "Used In"
-msgstr ""
-
-#: part/templates/part/navbar.html:70
-msgid "Prices"
-msgstr ""
-
-#: part/templates/part/navbar.html:102
-msgid "Test Templates"
-msgstr ""
-
#: part/templates/part/part_app_base.html:12
msgid "Part List"
msgstr "商品列表"
+#: part/templates/part/part_base.html:27 part/templates/part/part_base.html:31
+msgid "You are subscribed to notifications for this part"
+msgstr ""
+
#: part/templates/part/part_base.html:35
-msgid "Part is a template part (variants can be made from this part)"
+msgid "Subscribe to notifications for this part"
msgstr ""
-#: part/templates/part/part_base.html:38
-msgid "Part can be assembled from other parts"
-msgstr "商品可以由其他部件组装"
-
-#: part/templates/part/part_base.html:41
-msgid "Part can be used in assemblies"
-msgstr "商品可以用于组装成品"
-
-#: part/templates/part/part_base.html:44
-msgid "Part stock is tracked by serial number"
-msgstr ""
-
-#: part/templates/part/part_base.html:47
-msgid "Part can be purchased from external suppliers"
-msgstr "商品可以从外部供应商处购买"
-
-#: part/templates/part/part_base.html:50
-msgid "Part can be sold to customers"
-msgstr "商品可以销售给客户"
-
-#: part/templates/part/part_base.html:57 part/templates/part/part_base.html:65
-msgid "Part is virtual (not a physical part)"
-msgstr "商品是虚拟的(不是实体零件)"
-
-#: part/templates/part/part_base.html:58 templates/js/translated/company.js:504
-#: templates/js/translated/company.js:761 templates/js/translated/part.js:443
-#: templates/js/translated/part.js:520
-msgid "Inactive"
-msgstr ""
-
-#: part/templates/part/part_base.html:73
-msgid "Star this part"
-msgstr "标记此商品"
-
-#: part/templates/part/part_base.html:80
-#: stock/templates/stock/item_base.html:75
-#: stock/templates/stock/location.html:51
+#: part/templates/part/part_base.html:43
+#: stock/templates/stock/item_base.html:28
+#: stock/templates/stock/location.html:29
msgid "Barcode actions"
msgstr ""
-#: part/templates/part/part_base.html:82
-#: stock/templates/stock/item_base.html:77
-#: stock/templates/stock/location.html:53 templates/qr_button.html:1
+#: part/templates/part/part_base.html:45
+#: stock/templates/stock/item_base.html:32
+#: stock/templates/stock/location.html:31 templates/qr_button.html:1
msgid "Show QR Code"
msgstr ""
-#: part/templates/part/part_base.html:83
-#: stock/templates/stock/item_base.html:93
-#: stock/templates/stock/location.html:54
+#: part/templates/part/part_base.html:46
+#: stock/templates/stock/item_base.html:48
+#: stock/templates/stock/location.html:32
msgid "Print Label"
msgstr "打印标签"
-#: part/templates/part/part_base.html:89
+#: part/templates/part/part_base.html:51
msgid "Show pricing information"
msgstr ""
-#: part/templates/part/part_base.html:95
-#: stock/templates/stock/item_base.html:142
-#: stock/templates/stock/location.html:62
+#: part/templates/part/part_base.html:56
+#: stock/templates/stock/item_base.html:103
+#: stock/templates/stock/location.html:40
msgid "Stock actions"
msgstr ""
-#: part/templates/part/part_base.html:102
+#: part/templates/part/part_base.html:63
msgid "Count part stock"
msgstr "清点商品库存"
-#: part/templates/part/part_base.html:108
+#: part/templates/part/part_base.html:69
msgid "Transfer part stock"
msgstr ""
-#: part/templates/part/part_base.html:125
+#: part/templates/part/part_base.html:84
msgid "Part actions"
msgstr ""
-#: part/templates/part/part_base.html:128
+#: part/templates/part/part_base.html:87
msgid "Duplicate part"
msgstr "重复的商品"
-#: part/templates/part/part_base.html:131
+#: part/templates/part/part_base.html:90
msgid "Edit part"
msgstr "编辑商品"
-#: part/templates/part/part_base.html:134
+#: part/templates/part/part_base.html:93
msgid "Delete part"
msgstr "删除商品"
-#: part/templates/part/part_base.html:146
+#: part/templates/part/part_base.html:109
+msgid "Part is a template part (variants can be made from this part)"
+msgstr ""
+
+#: part/templates/part/part_base.html:113
+msgid "Part can be assembled from other parts"
+msgstr "商品可以由其他部件组装"
+
+#: part/templates/part/part_base.html:117
+msgid "Part can be used in assemblies"
+msgstr "商品可以用于组装成品"
+
+#: part/templates/part/part_base.html:121
+msgid "Part stock is tracked by serial number"
+msgstr ""
+
+#: part/templates/part/part_base.html:125
+msgid "Part can be purchased from external suppliers"
+msgstr "商品可以从外部供应商处购买"
+
+#: part/templates/part/part_base.html:129
+msgid "Part can be sold to customers"
+msgstr "商品可以销售给客户"
+
+#: part/templates/part/part_base.html:135
+#: part/templates/part/part_base.html:143
+msgid "Part is virtual (not a physical part)"
+msgstr "商品是虚拟的(不是实体零件)"
+
+#: part/templates/part/part_base.html:136
+#: templates/js/translated/company.js:505
+#: templates/js/translated/company.js:762
+#: templates/js/translated/model_renderers.js:175
+#: templates/js/translated/part.js:465 templates/js/translated/part.js:542
+msgid "Inactive"
+msgstr ""
+
+#: part/templates/part/part_base.html:155
#, python-format
msgid "This part is a variant of %(link)s"
msgstr ""
-#: part/templates/part/part_base.html:161
-#: templates/js/translated/model_renderers.js:169
-#: templates/js/translated/order.js:1503
-#: templates/js/translated/table_filters.js:166
+#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1524
+#: templates/js/translated/table_filters.js:188
msgid "In Stock"
msgstr ""
-#: part/templates/part/part_base.html:167 templates/js/translated/part.js:960
+#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054
msgid "On Order"
msgstr ""
-#: part/templates/part/part_base.html:174 templates/InvenTree/index.html:186
+#: part/templates/part/part_base.html:192 templates/InvenTree/index.html:178
msgid "Required for Build Orders"
msgstr ""
-#: part/templates/part/part_base.html:181
+#: part/templates/part/part_base.html:199
msgid "Required for Sales Orders"
msgstr ""
-#: part/templates/part/part_base.html:188
+#: part/templates/part/part_base.html:206
msgid "Allocated to Orders"
msgstr ""
-#: part/templates/part/part_base.html:203 templates/js/translated/bom.js:373
+#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:566
msgid "Can Build"
msgstr ""
-#: part/templates/part/part_base.html:209 templates/js/translated/part.js:776
-#: templates/js/translated/part.js:964
+#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885
+#: templates/js/translated/part.js:1058
msgid "Building"
msgstr ""
-#: part/templates/part/part_base.html:223
-#: part/templates/part/part_base.html:531
-#: part/templates/part/part_base.html:557
-msgid "Show Part Details"
-msgstr "显示商品详细信息"
-
-#: part/templates/part/part_base.html:283
-msgid "Latest Serial Number"
-msgstr ""
-
-#: part/templates/part/part_base.html:402 part/templates/part/prices.html:144
+#: part/templates/part/part_base.html:320 part/templates/part/prices.html:144
msgid "Calculate"
msgstr ""
-#: part/templates/part/part_base.html:445
+#: part/templates/part/part_base.html:363
msgid "No matching images found"
msgstr ""
-#: part/templates/part/part_base.html:526
-#: part/templates/part/part_base.html:551
-msgid "Hide Part Details"
-msgstr "隐藏商品详细信息"
-
#: part/templates/part/part_pricing.html:22 part/templates/part/prices.html:21
msgid "Supplier Pricing"
msgstr ""
@@ -4877,7 +4812,7 @@ msgid "Total Cost"
msgstr ""
#: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40
-#: templates/js/translated/bom.js:327
+#: templates/js/translated/bom.js:520
msgid "No supplier pricing available"
msgstr ""
@@ -4911,7 +4846,19 @@ msgstr ""
msgid "No pricing information is available for this part."
msgstr "此商品无价格信息可用。"
-#: part/templates/part/part_thumb.html:20
+#: part/templates/part/part_sidebar.html:13
+msgid "Variants"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:27
+msgid "Used In"
+msgstr ""
+
+#: part/templates/part/part_sidebar.html:43
+msgid "Test Templates"
+msgstr ""
+
+#: part/templates/part/part_thumb.html:11
msgid "Select from existing images"
msgstr ""
@@ -4980,7 +4927,7 @@ msgstr ""
msgid "Calculation parameters"
msgstr ""
-#: part/templates/part/prices.html:155 templates/js/translated/bom.js:321
+#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514
msgid "Supplier Cost"
msgstr ""
@@ -5002,7 +4949,7 @@ msgstr ""
msgid "Internal Cost"
msgstr ""
-#: part/templates/part/prices.html:215 part/views.py:1801
+#: part/templates/part/prices.html:215 part/views.py:1784
msgid "Add Internal Price Break"
msgstr ""
@@ -5022,13 +4969,13 @@ msgstr ""
msgid "Set category for the following parts"
msgstr "为以下商品设置类别"
-#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:297
-#: templates/js/translated/model_renderers.js:167
-#: templates/js/translated/part.js:766 templates/js/translated/part.js:968
+#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:476
+#: templates/js/translated/part.js:429 templates/js/translated/part.js:875
+#: templates/js/translated/part.js:1062
msgid "No Stock"
msgstr ""
-#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:166
+#: part/templates/part/stock_count.html:9 templates/InvenTree/index.html:158
msgid "Low Stock"
msgstr ""
@@ -5041,132 +4988,124 @@ msgstr ""
msgid "Create a new variant of template '%(full_name)s'."
msgstr ""
-#: part/templatetags/inventree_extras.py:106
+#: part/templatetags/inventree_extras.py:113
msgid "Unknown database"
msgstr ""
-#: part/views.py:94
-msgid "Add Related Part"
-msgstr ""
-
-#: part/views.py:149
-msgid "Delete Related Part"
-msgstr ""
-
-#: part/views.py:160
+#: part/views.py:92
msgid "Set Part Category"
msgstr "设置商品类别"
-#: part/views.py:210
+#: part/views.py:142
#, python-brace-format
msgid "Set category for {n} parts"
msgstr "为 {n} 个商品设置类别"
-#: part/views.py:270
+#: part/views.py:214
msgid "Match References"
msgstr ""
-#: part/views.py:526
+#: part/views.py:498
msgid "None"
msgstr ""
-#: part/views.py:585
+#: part/views.py:557
msgid "Part QR Code"
msgstr "商品二维码"
-#: part/views.py:687
+#: part/views.py:659
msgid "Select Part Image"
msgstr "选择商品图像"
-#: part/views.py:713
+#: part/views.py:685
msgid "Updated part image"
msgstr "更新商品图像"
-#: part/views.py:716
+#: part/views.py:688
msgid "Part image not found"
msgstr "未找到商品图像"
-#: part/views.py:728
+#: part/views.py:700
msgid "Duplicate BOM"
msgstr ""
-#: part/views.py:758
+#: part/views.py:730
msgid "Confirm duplication of BOM from parent"
msgstr ""
-#: part/views.py:779
-msgid "Validate BOM"
-msgstr ""
-
-#: part/views.py:800
+#: part/views.py:772
msgid "Confirm that the BOM is valid"
msgstr ""
-#: part/views.py:811
+#: part/views.py:783
msgid "Validated Bill of Materials"
msgstr ""
-#: part/views.py:884
+#: part/views.py:856
msgid "Match Parts"
msgstr "匹配商品"
-#: part/views.py:1272
+#: part/views.py:1192
+msgid "Export Bill of Materials"
+msgstr ""
+
+#: part/views.py:1244
msgid "Confirm Part Deletion"
msgstr "确认删除商品"
-#: part/views.py:1279
+#: part/views.py:1251
msgid "Part was deleted"
msgstr "商品已删除"
-#: part/views.py:1288
+#: part/views.py:1260
msgid "Part Pricing"
msgstr "商品价格"
-#: part/views.py:1437
+#: part/views.py:1409
msgid "Create Part Parameter Template"
msgstr ""
-#: part/views.py:1447
+#: part/views.py:1419
msgid "Edit Part Parameter Template"
msgstr ""
-#: part/views.py:1454
+#: part/views.py:1426
msgid "Delete Part Parameter Template"
msgstr ""
-#: part/views.py:1502 templates/js/translated/part.js:308
+#: part/views.py:1485 templates/js/translated/part.js:310
msgid "Edit Part Category"
msgstr "编辑商品类别"
-#: part/views.py:1540
+#: part/views.py:1523
msgid "Delete Part Category"
msgstr "删除商品类别"
-#: part/views.py:1546
+#: part/views.py:1529
msgid "Part category was deleted"
msgstr "商品类别已删除"
-#: part/views.py:1555
+#: part/views.py:1538
msgid "Create Category Parameter Template"
msgstr "创建类别参数模板"
-#: part/views.py:1656
+#: part/views.py:1639
msgid "Edit Category Parameter Template"
msgstr "编辑类别参数模板"
-#: part/views.py:1712
+#: part/views.py:1695
msgid "Delete Category Parameter Template"
msgstr "删除类别参数模板"
-#: part/views.py:1734
+#: part/views.py:1717
msgid "Added new price break"
msgstr ""
-#: part/views.py:1810
+#: part/views.py:1793
msgid "Edit Internal Price Break"
msgstr ""
-#: part/views.py:1818
+#: part/views.py:1801
msgid "Delete Internal Price Break"
msgstr ""
@@ -5258,31 +5197,35 @@ msgstr ""
msgid "Required For"
msgstr ""
-#: report/templates/report/inventree_po_report.html:85
-#: report/templates/report/inventree_so_report.html:85
-msgid "Line Items"
-msgstr ""
-
#: report/templates/report/inventree_test_report_base.html:21
msgid "Stock Item Test Report"
msgstr ""
+#: report/templates/report/inventree_test_report_base.html:75
+#: stock/models.py:530 stock/templates/stock/item_base.html:238
+#: templates/js/translated/build.js:233 templates/js/translated/build.js:637
+#: templates/js/translated/build.js:1013
+#: templates/js/translated/model_renderers.js:95
+#: templates/js/translated/order.js:1266 templates/js/translated/order.js:1355
+msgid "Serial Number"
+msgstr "序列号"
+
#: report/templates/report/inventree_test_report_base.html:83
msgid "Test Results"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:88
-#: stock/models.py:1804
+#: stock/models.py:1855
msgid "Test"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:89
-#: stock/models.py:1810
+#: stock/models.py:1861
msgid "Result"
msgstr ""
#: report/templates/report/inventree_test_report_base.html:92
-#: templates/js/translated/order.js:684 templates/js/translated/stock.js:1502
+#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887
msgid "Date"
msgstr ""
@@ -5294,516 +5237,538 @@ msgstr ""
msgid "Fail"
msgstr ""
-#: stock/forms.py:79 stock/forms.py:307 stock/models.py:556
-#: stock/templates/stock/item_base.html:395
-#: templates/js/translated/stock.js:946
+#: stock/api.py:422
+msgid "Quantity is required"
+msgstr ""
+
+#: stock/forms.py:91 stock/forms.py:265 stock/models.py:587
+#: stock/templates/stock/item_base.html:382
+#: templates/js/translated/stock.js:1246
msgid "Expiry Date"
msgstr ""
-#: stock/forms.py:80 stock/forms.py:308
+#: stock/forms.py:92 stock/forms.py:266
msgid "Expiration date for this stock item"
msgstr ""
-#: stock/forms.py:83
+#: stock/forms.py:95
msgid "Enter unique serial numbers (or leave blank)"
msgstr ""
-#: stock/forms.py:134
+#: stock/forms.py:150
msgid "Destination for serialized stock (by default, will remain in current location)"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Serial numbers"
msgstr ""
-#: stock/forms.py:136
+#: stock/forms.py:152
msgid "Unique serial numbers (must match quantity)"
msgstr ""
-#: stock/forms.py:138 stock/forms.py:282
+#: stock/forms.py:154 stock/forms.py:238
msgid "Add transaction note (optional)"
msgstr ""
-#: stock/forms.py:168 stock/forms.py:224
-msgid "Select test report template"
-msgstr ""
-
-#: stock/forms.py:240
+#: stock/forms.py:194
msgid "Stock item to install"
msgstr ""
-#: stock/forms.py:270
+#: stock/forms.py:224
msgid "Must not exceed available quantity"
msgstr ""
-#: stock/forms.py:280
+#: stock/forms.py:236
msgid "Destination location for uninstalled items"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm uninstall"
msgstr ""
-#: stock/forms.py:284
+#: stock/forms.py:240
msgid "Confirm removal of installed stock items"
msgstr ""
-#: stock/models.py:57 stock/models.py:593
+#: stock/models.py:60 stock/models.py:624
+#: stock/templates/stock/item_base.html:422
msgid "Owner"
msgstr ""
-#: stock/models.py:58 stock/models.py:594
+#: stock/models.py:61 stock/models.py:625
msgid "Select Owner"
msgstr ""
-#: stock/models.py:322
+#: stock/models.py:352
msgid "StockItem with this serial number already exists"
msgstr ""
-#: stock/models.py:358
+#: stock/models.py:388
#, python-brace-format
msgid "Part type ('{pf}') must be {pe}"
msgstr "商品类型 ('{pf}') 必须是 {pe}"
-#: stock/models.py:368 stock/models.py:377
+#: stock/models.py:398 stock/models.py:407
msgid "Quantity must be 1 for item with a serial number"
msgstr ""
-#: stock/models.py:369
+#: stock/models.py:399
msgid "Serial number cannot be set if quantity greater than 1"
msgstr ""
-#: stock/models.py:391
+#: stock/models.py:421
msgid "Item cannot belong to itself"
msgstr ""
-#: stock/models.py:397
+#: stock/models.py:427
msgid "Item must have a build reference if is_building=True"
msgstr ""
-#: stock/models.py:404
+#: stock/models.py:434
msgid "Build reference does not point to the same part object"
msgstr ""
-#: stock/models.py:446
+#: stock/models.py:476
msgid "Parent Stock Item"
msgstr ""
-#: stock/models.py:455
+#: stock/models.py:485
msgid "Base part"
msgstr ""
-#: stock/models.py:464
+#: stock/models.py:493
msgid "Select a matching supplier part for this stock item"
msgstr ""
-#: stock/models.py:469 stock/templates/stock/stock_app_base.html:8
+#: stock/models.py:498 stock/templates/stock/location.html:12
+#: stock/templates/stock/stock_app_base.html:8
msgid "Stock Location"
msgstr "仓储地点"
-#: stock/models.py:472
+#: stock/models.py:501
msgid "Where is this stock item located?"
msgstr ""
-#: stock/models.py:479
+#: stock/models.py:508
msgid "Packaging this stock item is stored in"
msgstr ""
-#: stock/models.py:484 stock/templates/stock/item_base.html:284
+#: stock/models.py:513 stock/templates/stock/item_base.html:271
msgid "Installed In"
msgstr ""
-#: stock/models.py:487
+#: stock/models.py:516
msgid "Is this item installed in another item?"
msgstr ""
-#: stock/models.py:503
+#: stock/models.py:532
msgid "Serial number for this item"
msgstr ""
-#: stock/models.py:515
+#: stock/models.py:546
msgid "Batch code for this stock item"
msgstr ""
-#: stock/models.py:519
+#: stock/models.py:550
msgid "Stock Quantity"
msgstr ""
-#: stock/models.py:528
+#: stock/models.py:559
msgid "Source Build"
msgstr ""
-#: stock/models.py:530
+#: stock/models.py:561
msgid "Build for this stock item"
msgstr ""
-#: stock/models.py:541
+#: stock/models.py:572
msgid "Source Purchase Order"
msgstr ""
-#: stock/models.py:544
+#: stock/models.py:575
msgid "Purchase order for this stock item"
msgstr ""
-#: stock/models.py:550
+#: stock/models.py:581
msgid "Destination Sales Order"
msgstr ""
-#: stock/models.py:557
+#: stock/models.py:588
msgid "Expiry date for stock item. Stock will be considered expired after this date"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete on deplete"
msgstr ""
-#: stock/models.py:570
+#: stock/models.py:601
msgid "Delete this Stock Item when stock is depleted"
msgstr ""
-#: stock/models.py:580 stock/templates/stock/item.html:99
-#: stock/templates/stock/navbar.html:54
+#: stock/models.py:611 stock/templates/stock/item.html:111
msgid "Stock Item Notes"
msgstr ""
-#: stock/models.py:589
+#: stock/models.py:620
msgid "Single unit purchase price at time of purchase"
msgstr ""
-#: stock/models.py:599
+#: stock/models.py:630
msgid "Scheduled for deletion"
msgstr ""
-#: stock/models.py:600
+#: stock/models.py:631
msgid "This StockItem will be deleted by the background worker"
msgstr ""
-#: stock/models.py:1063
+#: stock/models.py:1094
msgid "Part is not set as trackable"
msgstr ""
-#: stock/models.py:1069
+#: stock/models.py:1100
msgid "Quantity must be integer"
msgstr ""
-#: stock/models.py:1075
+#: stock/models.py:1106
#, python-brace-format
msgid "Quantity must not exceed available stock quantity ({n})"
msgstr ""
-#: stock/models.py:1078
+#: stock/models.py:1109
msgid "Serial numbers must be a list of integers"
msgstr ""
-#: stock/models.py:1081
+#: stock/models.py:1112
msgid "Quantity does not match serial numbers"
msgstr ""
-#: stock/models.py:1088
+#: stock/models.py:1119
#, python-brace-format
msgid "Serial numbers already exist: {exists}"
msgstr ""
-#: stock/models.py:1246
+#: stock/models.py:1277
msgid "StockItem cannot be moved as it is not in stock"
msgstr ""
-#: stock/models.py:1724
+#: stock/models.py:1775
msgid "Entry notes"
msgstr ""
-#: stock/models.py:1781
+#: stock/models.py:1832
msgid "Value must be provided for this test"
msgstr ""
-#: stock/models.py:1787
+#: stock/models.py:1838
msgid "Attachment must be uploaded for this test"
msgstr ""
-#: stock/models.py:1805
+#: stock/models.py:1856
msgid "Test name"
msgstr ""
-#: stock/models.py:1811 templates/js/translated/table_filters.js:244
+#: stock/models.py:1862 templates/js/translated/table_filters.js:266
msgid "Test result"
msgstr ""
-#: stock/models.py:1817
+#: stock/models.py:1868
msgid "Test output value"
msgstr ""
-#: stock/models.py:1824
+#: stock/models.py:1875
msgid "Test result attachment"
msgstr ""
-#: stock/models.py:1830
+#: stock/models.py:1881
msgid "Test notes"
msgstr ""
-#: stock/serializers.py:424
-msgid "StockItem primary key value"
+#: stock/serializers.py:166
+msgid "Purchase price of this stock item"
msgstr ""
-#: stock/serializers.py:452
-msgid "Stock transaction notes"
+#: stock/serializers.py:173
+msgid "Purchase currency of this stock item"
msgstr ""
-#: stock/serializers.py:462
-msgid "A list of stock items must be provided"
+#: stock/serializers.py:287
+msgid "Enter number of stock items to serialize"
msgstr ""
-#: stock/serializers.py:554
+#: stock/serializers.py:302
+#, python-brace-format
+msgid "Quantity must not exceed available stock quantity ({q})"
+msgstr ""
+
+#: stock/serializers.py:308
+msgid "Enter serial numbers for new items"
+msgstr ""
+
+#: stock/serializers.py:319 stock/serializers.py:687
msgid "Destination stock location"
msgstr ""
-#: stock/templates/stock/item.html:17
+#: stock/serializers.py:326
+msgid "Optional note field"
+msgstr ""
+
+#: stock/serializers.py:339
+msgid "Serial numbers cannot be assigned to this part"
+msgstr ""
+
+#: stock/serializers.py:557
+msgid "StockItem primary key value"
+msgstr ""
+
+#: stock/serializers.py:585
+msgid "Stock transaction notes"
+msgstr ""
+
+#: stock/serializers.py:595
+msgid "A list of stock items must be provided"
+msgstr ""
+
+#: stock/templates/stock/item.html:18
msgid "Stock Tracking Information"
msgstr ""
-#: stock/templates/stock/item.html:30
+#: stock/templates/stock/item.html:29
msgid "New Entry"
msgstr ""
-#: stock/templates/stock/item.html:43
+#: stock/templates/stock/item.html:48
msgid "Child Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:50
+#: stock/templates/stock/item.html:55
msgid "This stock item does not have any child items"
msgstr ""
-#: stock/templates/stock/item.html:58 stock/templates/stock/navbar.html:19
-#: stock/templates/stock/navbar.html:22
+#: stock/templates/stock/item.html:64
+#: stock/templates/stock/stock_sidebar.html:8
msgid "Test Data"
msgstr ""
-#: stock/templates/stock/item.html:66
-msgid "Delete Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:70
-msgid "Add Test Data"
-msgstr ""
-
-#: stock/templates/stock/item.html:73 stock/templates/stock/item_base.html:95
+#: stock/templates/stock/item.html:68 stock/templates/stock/item_base.html:50
msgid "Test Report"
msgstr ""
-#: stock/templates/stock/item.html:120 stock/templates/stock/navbar.html:27
+#: stock/templates/stock/item.html:72
+msgid "Delete Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:76
+msgid "Add Test Data"
+msgstr ""
+
+#: stock/templates/stock/item.html:133
msgid "Installed Stock Items"
msgstr ""
-#: stock/templates/stock/item.html:125 stock/views.py:511
+#: stock/templates/stock/item.html:137 stock/views.py:515
msgid "Install Stock Item"
msgstr ""
-#: stock/templates/stock/item.html:301 stock/templates/stock/item.html:326
+#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343
msgid "Add Test Result"
msgstr ""
-#: stock/templates/stock/item.html:346
+#: stock/templates/stock/item.html:363
msgid "Edit Test Result"
msgstr ""
-#: stock/templates/stock/item.html:360
+#: stock/templates/stock/item.html:377
msgid "Delete Test Result"
msgstr ""
-#: stock/templates/stock/item_base.html:33
-#: stock/templates/stock/item_base.html:399
-#: templates/js/translated/table_filters.js:225
-msgid "Expired"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:43
-#: stock/templates/stock/item_base.html:401
-#: templates/js/translated/table_filters.js:231
-msgid "Stale"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:80
-#: templates/js/translated/barcode.js:331
-#: templates/js/translated/barcode.js:336
+#: stock/templates/stock/item_base.html:35
+#: templates/js/translated/barcode.js:330
+#: templates/js/translated/barcode.js:335
msgid "Unlink Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/item_base.html:37
msgid "Link Barcode"
msgstr ""
-#: stock/templates/stock/item_base.html:84 templates/stock_table.html:31
+#: stock/templates/stock/item_base.html:39 templates/stock_table.html:24
msgid "Scan to Location"
msgstr ""
-#: stock/templates/stock/item_base.html:91
+#: stock/templates/stock/item_base.html:46
msgid "Printing actions"
msgstr ""
-#: stock/templates/stock/item_base.html:104
+#: stock/templates/stock/item_base.html:65
msgid "Stock adjustment actions"
msgstr ""
-#: stock/templates/stock/item_base.html:108
-#: stock/templates/stock/location.html:69 templates/stock_table.html:57
+#: stock/templates/stock/item_base.html:69
+#: stock/templates/stock/location.html:47 templates/stock_table.html:50
msgid "Count stock"
msgstr ""
-#: stock/templates/stock/item_base.html:111 templates/stock_table.html:55
+#: stock/templates/stock/item_base.html:72 templates/stock_table.html:48
msgid "Add stock"
msgstr ""
-#: stock/templates/stock/item_base.html:114 templates/stock_table.html:56
+#: stock/templates/stock/item_base.html:75 templates/stock_table.html:49
msgid "Remove stock"
msgstr ""
-#: stock/templates/stock/item_base.html:117
+#: stock/templates/stock/item_base.html:78
msgid "Serialize stock"
msgstr ""
-#: stock/templates/stock/item_base.html:121
-#: stock/templates/stock/location.html:75
+#: stock/templates/stock/item_base.html:82
+#: stock/templates/stock/location.html:53
msgid "Transfer stock"
msgstr ""
-#: stock/templates/stock/item_base.html:124
+#: stock/templates/stock/item_base.html:85
msgid "Assign to customer"
msgstr ""
-#: stock/templates/stock/item_base.html:127
+#: stock/templates/stock/item_base.html:88
msgid "Return to stock"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:130
+#: stock/templates/stock/item_base.html:91
msgid "Uninstall"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:133
+#: stock/templates/stock/item_base.html:94
msgid "Install"
msgstr ""
-#: stock/templates/stock/item_base.html:145
+#: stock/templates/stock/item_base.html:106
msgid "Convert to variant"
msgstr ""
-#: stock/templates/stock/item_base.html:148
+#: stock/templates/stock/item_base.html:109
msgid "Duplicate stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:150
+#: stock/templates/stock/item_base.html:111
msgid "Edit stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:153
+#: stock/templates/stock/item_base.html:114
msgid "Delete stock item"
msgstr ""
-#: stock/templates/stock/item_base.html:173
+#: stock/templates/stock/item_base.html:136
+#: stock/templates/stock/item_base.html:386
+#: templates/js/translated/table_filters.js:247
+msgid "Expired"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:146
+#: stock/templates/stock/item_base.html:388
+#: templates/js/translated/table_filters.js:253
+msgid "Stale"
+msgstr ""
+
+#: stock/templates/stock/item_base.html:161
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:180
+#: stock/templates/stock/item_base.html:168
msgid "This stock item is in production and cannot be edited."
msgstr "此库存项目正在生产中,无法编辑。"
-#: stock/templates/stock/item_base.html:181
+#: stock/templates/stock/item_base.html:169
msgid "Edit the stock item from the build view."
msgstr ""
-#: stock/templates/stock/item_base.html:194
+#: stock/templates/stock/item_base.html:182
msgid "This stock item has not passed all required tests"
msgstr ""
-#: stock/templates/stock/item_base.html:202
+#: stock/templates/stock/item_base.html:190
#, python-format
msgid "This stock item is allocated to Sales Order %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:210
+#: stock/templates/stock/item_base.html:198
#, python-format
msgid "This stock item is allocated to Build %(link)s (Quantity: %(qty)s)"
msgstr ""
-#: stock/templates/stock/item_base.html:216
+#: stock/templates/stock/item_base.html:204
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:220
+#: stock/templates/stock/item_base.html:208
msgid "This stock item cannot be deleted as it has child items"
msgstr ""
-#: stock/templates/stock/item_base.html:224
+#: stock/templates/stock/item_base.html:212
msgid "This stock item will be automatically deleted when all stock is depleted."
msgstr ""
-#: stock/templates/stock/item_base.html:232
-msgid "Stock Item Details"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:254
+#: stock/templates/stock/item_base.html:241
msgid "previous page"
msgstr ""
-#: stock/templates/stock/item_base.html:260
+#: stock/templates/stock/item_base.html:247
msgid "next page"
msgstr ""
-#: stock/templates/stock/item_base.html:303
-#: templates/js/translated/build.js:658
+#: stock/templates/stock/item_base.html:290
+#: templates/js/translated/build.js:1035
msgid "No location set"
msgstr "未设置仓储地点"
-#: stock/templates/stock/item_base.html:310
+#: stock/templates/stock/item_base.html:297
msgid "Barcode Identifier"
msgstr ""
-#: stock/templates/stock/item_base.html:352
+#: stock/templates/stock/item_base.html:339
msgid "Parent Item"
msgstr ""
-#: stock/templates/stock/item_base.html:370
+#: stock/templates/stock/item_base.html:357
msgid "No manufacturer set"
msgstr ""
-#: stock/templates/stock/item_base.html:399
+#: stock/templates/stock/item_base.html:386
#, python-format
msgid "This StockItem expired on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:401
+#: stock/templates/stock/item_base.html:388
#, python-format
msgid "This StockItem expires on %(item.expiry_date)s"
msgstr ""
-#: stock/templates/stock/item_base.html:408
-#: templates/js/translated/stock.js:959
+#: stock/templates/stock/item_base.html:395
+#: templates/js/translated/stock.js:1259
msgid "Last Updated"
msgstr ""
-#: stock/templates/stock/item_base.html:413
+#: stock/templates/stock/item_base.html:400
msgid "Last Stocktake"
msgstr ""
-#: stock/templates/stock/item_base.html:417
+#: stock/templates/stock/item_base.html:404
msgid "No stocktake performed"
msgstr ""
-#: stock/templates/stock/item_base.html:428
+#: stock/templates/stock/item_base.html:415
msgid "Tests"
msgstr ""
-#: stock/templates/stock/item_base.html:516
-msgid "Save"
-msgstr ""
-
-#: stock/templates/stock/item_base.html:528
+#: stock/templates/stock/item_base.html:504
msgid "Edit Stock Status"
msgstr ""
@@ -5857,115 +5822,82 @@ msgstr ""
msgid "Select quantity to serialize, and unique serial numbers."
msgstr ""
-#: stock/templates/stock/location.html:20
-msgid "You are not in the list of owners of this location. This stock location cannot be edited."
-msgstr "您不在此仓储地的所有者列表中,无法编辑此仓储地。"
-
-#: stock/templates/stock/location.html:37
-msgid "All stock items"
-msgstr ""
-
-#: stock/templates/stock/location.html:42
-msgid "Create new stock location"
-msgstr "新建仓储地点"
-
-#: stock/templates/stock/location.html:55
+#: stock/templates/stock/location.html:33
msgid "Check-in Items"
msgstr ""
-#: stock/templates/stock/location.html:83
+#: stock/templates/stock/location.html:61
msgid "Location actions"
msgstr "仓储地操作"
-#: stock/templates/stock/location.html:85
+#: stock/templates/stock/location.html:63
msgid "Edit location"
msgstr "编辑仓储地"
-#: stock/templates/stock/location.html:87
+#: stock/templates/stock/location.html:65
msgid "Delete location"
msgstr "删除仓储地"
-#: stock/templates/stock/location.html:99
-msgid "Location Details"
-msgstr "仓储地详细信息"
+#: stock/templates/stock/location.html:75
+msgid "Create new stock location"
+msgstr "新建仓储地点"
-#: stock/templates/stock/location.html:104
-msgid "Location Path"
-msgstr "仓储地路径"
+#: stock/templates/stock/location.html:76
+msgid "New Location"
+msgstr "新建仓储地点"
-#: stock/templates/stock/location.html:109
-msgid "Location Description"
-msgstr "仓储地描述信息"
+#: stock/templates/stock/location.html:86
+msgid "Top level stock location"
+msgstr ""
-#: stock/templates/stock/location.html:114
-#: stock/templates/stock/location.html:155
-#: stock/templates/stock/location_navbar.html:11
-#: stock/templates/stock/location_navbar.html:14
+#: stock/templates/stock/location.html:95
+msgid "You are not in the list of owners of this location. This stock location cannot be edited."
+msgstr "您不在此仓储地的所有者列表中,无法编辑此仓储地。"
+
+#: stock/templates/stock/location.html:113
+#: stock/templates/stock/location.html:160
+#: stock/templates/stock/location_sidebar.html:5
msgid "Sublocations"
msgstr ""
-#: stock/templates/stock/location.html:124
-msgid "Stock Details"
-msgstr ""
-
-#: stock/templates/stock/location.html:129 templates/InvenTree/search.html:196
+#: stock/templates/stock/location.html:127 templates/InvenTree/search.html:170
#: templates/stats.html:97 users/models.py:42
msgid "Stock Locations"
msgstr "仓储地点"
-#: stock/templates/stock/location.html:162 templates/stock_table.html:37
+#: stock/templates/stock/location.html:167 templates/stock_table.html:30
msgid "Printing Actions"
msgstr "打印操作"
-#: stock/templates/stock/location.html:166 templates/stock_table.html:41
+#: stock/templates/stock/location.html:171 templates/stock_table.html:34
msgid "Print labels"
msgstr "打印标签"
-#: stock/templates/stock/location.html:250
-msgid "New Location"
-msgstr "新建仓储地点"
-
-#: stock/templates/stock/location.html:251
-msgid "Create new location"
-msgstr "新建仓储地点"
-
#: stock/templates/stock/location_delete.html:7
msgid "Are you sure you want to delete this stock location?"
msgstr "确实要删除此仓储地点吗?"
-#: stock/templates/stock/navbar.html:11
-msgid "Stock Item Tracking"
+#: stock/templates/stock/stock_app_base.html:16
+msgid "Loading..."
msgstr ""
-#: stock/templates/stock/navbar.html:14
-msgid "History"
+#: stock/templates/stock/stock_sidebar.html:5
+msgid "Stock Tracking"
msgstr ""
-#: stock/templates/stock/navbar.html:30
+#: stock/templates/stock/stock_sidebar.html:12
msgid "Installed Items"
msgstr ""
-#: stock/templates/stock/navbar.html:38
+#: stock/templates/stock/stock_sidebar.html:16
msgid "Child Items"
msgstr ""
-#: stock/templates/stock/navbar.html:41
-msgid "Children"
-msgstr ""
-
-#: stock/templates/stock/stock_adjust.html:43
-msgid "Remove item"
-msgstr ""
-
-#: stock/templates/stock/stock_app_base.html:16
-msgid "Loading..."
-msgstr ""
-
#: stock/templates/stock/stock_uninstall.html:8
msgid "The following stock items will be uninstalled"
msgstr ""
-#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:909
+#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912
msgid "Convert Stock Item"
msgstr ""
@@ -5986,104 +5918,100 @@ msgstr ""
msgid "Are you sure you want to delete this stock tracking entry?"
msgstr ""
-#: stock/views.py:158
+#: stock/views.py:162
msgid "Edit Stock Location"
msgstr "编辑仓储地点"
-#: stock/views.py:265 stock/views.py:888 stock/views.py:1010
-#: stock/views.py:1375
+#: stock/views.py:269 stock/views.py:891 stock/views.py:1017
+#: stock/views.py:1299
msgid "Owner is required (ownership control is enabled)"
msgstr ""
-#: stock/views.py:280
+#: stock/views.py:284
msgid "Stock Location QR code"
msgstr "仓储地点二维码"
-#: stock/views.py:299
+#: stock/views.py:303
msgid "Assign to Customer"
msgstr ""
-#: stock/views.py:308
+#: stock/views.py:312
msgid "Customer must be specified"
msgstr ""
-#: stock/views.py:332
+#: stock/views.py:336
msgid "Return to Stock"
msgstr ""
-#: stock/views.py:341
+#: stock/views.py:345
msgid "Specify a valid location"
msgstr "指定一个有效仓储地点"
-#: stock/views.py:352
+#: stock/views.py:356
msgid "Stock item returned from customer"
msgstr ""
-#: stock/views.py:363
+#: stock/views.py:367
msgid "Delete All Test Data"
msgstr ""
-#: stock/views.py:380
+#: stock/views.py:384
msgid "Confirm test data deletion"
msgstr ""
-#: stock/views.py:485
+#: stock/views.py:489
msgid "Stock Item QR Code"
msgstr ""
-#: stock/views.py:660
+#: stock/views.py:663
msgid "Uninstall Stock Items"
msgstr ""
-#: stock/views.py:757 templates/js/translated/stock.js:321
+#: stock/views.py:760 templates/js/translated/stock.js:618
msgid "Confirm stock adjustment"
msgstr ""
-#: stock/views.py:768
+#: stock/views.py:771
msgid "Uninstalled stock items"
msgstr ""
-#: stock/views.py:790
+#: stock/views.py:793 templates/js/translated/stock.js:288
msgid "Edit Stock Item"
msgstr ""
-#: stock/views.py:936
+#: stock/views.py:943
msgid "Create new Stock Location"
msgstr "新建仓储地点"
-#: stock/views.py:1027
-msgid "Serialize Stock"
-msgstr ""
-
-#: stock/views.py:1120
+#: stock/views.py:1044
msgid "Create new Stock Item"
msgstr ""
-#: stock/views.py:1262
+#: stock/views.py:1186 templates/js/translated/stock.js:268
msgid "Duplicate Stock Item"
msgstr ""
-#: stock/views.py:1344
+#: stock/views.py:1268
msgid "Quantity cannot be negative"
msgstr ""
-#: stock/views.py:1444
+#: stock/views.py:1368
msgid "Delete Stock Location"
msgstr "删除仓储地点"
-#: stock/views.py:1457
+#: stock/views.py:1381
msgid "Delete Stock Item"
msgstr ""
-#: stock/views.py:1468
+#: stock/views.py:1392
msgid "Delete Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1475
+#: stock/views.py:1399
msgid "Edit Stock Tracking Entry"
msgstr ""
-#: stock/views.py:1484
+#: stock/views.py:1408
msgid "Add Stock Tracking Entry"
msgstr ""
@@ -6107,63 +6035,67 @@ msgstr ""
msgid "Index"
msgstr ""
-#: templates/InvenTree/index.html:105
-msgid "Starred Parts"
-msgstr "已加星标商品"
+#: templates/InvenTree/index.html:88
+msgid "Subscribed Parts"
+msgstr ""
-#: templates/InvenTree/index.html:115
+#: templates/InvenTree/index.html:98
+msgid "Subscribed Categories"
+msgstr ""
+
+#: templates/InvenTree/index.html:108
msgid "Latest Parts"
msgstr "最近商品"
-#: templates/InvenTree/index.html:126
+#: templates/InvenTree/index.html:119
msgid "BOM Waiting Validation"
msgstr ""
-#: templates/InvenTree/index.html:153
+#: templates/InvenTree/index.html:145
msgid "Recently Updated"
msgstr ""
-#: templates/InvenTree/index.html:176
+#: templates/InvenTree/index.html:168
msgid "Depleted Stock"
msgstr ""
-#: templates/InvenTree/index.html:199
+#: templates/InvenTree/index.html:191
msgid "Expired Stock"
msgstr ""
-#: templates/InvenTree/index.html:210
+#: templates/InvenTree/index.html:202
msgid "Stale Stock"
msgstr ""
-#: templates/InvenTree/index.html:232
+#: templates/InvenTree/index.html:224
msgid "Build Orders In Progress"
msgstr ""
-#: templates/InvenTree/index.html:243
+#: templates/InvenTree/index.html:235
msgid "Overdue Build Orders"
msgstr ""
-#: templates/InvenTree/index.html:263
+#: templates/InvenTree/index.html:255
msgid "Outstanding Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:274
+#: templates/InvenTree/index.html:266
msgid "Overdue Purchase Orders"
msgstr ""
-#: templates/InvenTree/index.html:294
+#: templates/InvenTree/index.html:286
msgid "Outstanding Sales Orders"
msgstr ""
-#: templates/InvenTree/index.html:305
+#: templates/InvenTree/index.html:297
msgid "Overdue Sales Orders"
msgstr ""
-#: templates/InvenTree/search.html:8 templates/InvenTree/search.html:14
+#: templates/InvenTree/search.html:8
msgid "Search Results"
msgstr ""
-#: templates/InvenTree/search.html:24
+#: templates/InvenTree/search.html:22
msgid "Enter a search query"
msgstr ""
@@ -6183,23 +6115,23 @@ msgstr "类别设置"
msgid "Currency Settings"
msgstr "货币设置"
-#: templates/InvenTree/settings/currencies.html:23
+#: templates/InvenTree/settings/currencies.html:19
msgid "Base Currency"
msgstr "基础货币"
-#: templates/InvenTree/settings/currencies.html:27
+#: templates/InvenTree/settings/currencies.html:24
msgid "Exchange Rates"
msgstr "汇率"
-#: templates/InvenTree/settings/currencies.html:37
+#: templates/InvenTree/settings/currencies.html:38
msgid "Last Update"
msgstr "上次更新"
-#: templates/InvenTree/settings/currencies.html:43
+#: templates/InvenTree/settings/currencies.html:44
msgid "Never"
msgstr "从不"
-#: templates/InvenTree/settings/currencies.html:48
+#: templates/InvenTree/settings/currencies.html:49
msgid "Update Now"
msgstr "立即更新"
@@ -6207,112 +6139,28 @@ msgstr "立即更新"
msgid "Server Settings"
msgstr ""
-#: templates/InvenTree/settings/header.html:7
-msgid "Setting"
-msgstr "设置"
-
#: templates/InvenTree/settings/login.html:9
+#: templates/InvenTree/settings/sidebar.html:28
msgid "Login Settings"
msgstr ""
-#: templates/InvenTree/settings/login.html:22 templates/account/signup.html:5
+#: templates/InvenTree/settings/login.html:20 templates/account/signup.html:5
msgid "Signup"
msgstr ""
-#: templates/InvenTree/settings/navbar.html:12
-#: templates/InvenTree/settings/user_settings.html:9
-msgid "User Settings"
-msgstr "用户设置"
-
-#: templates/InvenTree/settings/navbar.html:15
-#: templates/InvenTree/settings/navbar.html:17
-msgid "Account"
-msgstr "帐户"
-
-#: templates/InvenTree/settings/navbar.html:21
-#: templates/InvenTree/settings/navbar.html:23
-msgid "Home Page"
-msgstr "主页"
-
-#: templates/InvenTree/settings/navbar.html:27
-#: templates/InvenTree/settings/navbar.html:29
-#: templates/js/translated/tables.js:375 templates/search_form.html:6
-#: templates/search_form.html:8
-msgid "Search"
-msgstr "搜索"
-
-#: templates/InvenTree/settings/navbar.html:33
-#: templates/InvenTree/settings/navbar.html:35
-msgid "Labels"
-msgstr "标签"
-
-#: templates/InvenTree/settings/navbar.html:39
-#: templates/InvenTree/settings/navbar.html:41
-msgid "Reports"
-msgstr "报表"
-
-#: templates/InvenTree/settings/navbar.html:45
-#: templates/InvenTree/settings/navbar.html:47
-msgid "Forms"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:52
-#: templates/InvenTree/settings/navbar.html:54
-#: templates/InvenTree/settings/settings.html:8 templates/navbar.html:90
-msgid "Settings"
-msgstr "设置"
-
-#: templates/InvenTree/settings/navbar.html:62
-msgid "InvenTree Settings"
-msgstr "InventTree 设置"
-
-#: templates/InvenTree/settings/navbar.html:65
-#: templates/InvenTree/settings/navbar.html:67 templates/stats.html:9
-msgid "Server"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:71
-#: templates/InvenTree/settings/navbar.html:73 templates/navbar.html:87
-msgid "Login"
-msgstr ""
-
-#: templates/InvenTree/settings/navbar.html:77
-#: templates/InvenTree/settings/navbar.html:79
-msgid "Barcodes"
-msgstr "条形码"
-
-#: templates/InvenTree/settings/navbar.html:83
-#: templates/InvenTree/settings/navbar.html:85
-msgid "Currencies"
-msgstr "币种"
-
-#: templates/InvenTree/settings/navbar.html:89
-#: templates/InvenTree/settings/navbar.html:91
-msgid "Reporting"
-msgstr "报表"
-
-#: templates/InvenTree/settings/navbar.html:101
-#: templates/InvenTree/settings/navbar.html:103
-msgid "Categories"
-msgstr "类别管理"
-
#: templates/InvenTree/settings/part.html:7
msgid "Part Settings"
msgstr "商品设置"
-#: templates/InvenTree/settings/part.html:12
-msgid "Part Options"
-msgstr "商品选项"
-
#: templates/InvenTree/settings/part.html:43
msgid "Part Import"
msgstr "商品导入"
-#: templates/InvenTree/settings/part.html:46
+#: templates/InvenTree/settings/part.html:47
msgid "Import Part"
msgstr "导入商品"
-#: templates/InvenTree/settings/part.html:59
+#: templates/InvenTree/settings/part.html:61
msgid "Part Parameter Templates"
msgstr "商品参数模板"
@@ -6325,32 +6173,97 @@ msgstr "采购订单设置"
msgid "Report Settings"
msgstr "报表设置"
-#: templates/InvenTree/settings/setting.html:29
+#: templates/InvenTree/settings/setting.html:28
msgid "No value set"
msgstr "未设置值"
-#: templates/InvenTree/settings/setting.html:41
+#: templates/InvenTree/settings/setting.html:39
msgid "Edit setting"
msgstr "编辑设置"
-#: templates/InvenTree/settings/settings.html:154
+#: templates/InvenTree/settings/settings.html:11 templates/navbar.html:93
+msgid "Settings"
+msgstr "设置"
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit Global Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:65
+msgid "Edit User Setting"
+msgstr ""
+
+#: templates/InvenTree/settings/settings.html:148
msgid "No category parameter templates found"
msgstr "未找到类别参数模板"
-#: templates/InvenTree/settings/settings.html:176
-#: templates/InvenTree/settings/settings.html:275
+#: templates/InvenTree/settings/settings.html:170
+#: templates/InvenTree/settings/settings.html:269
msgid "Edit Template"
msgstr "编辑模板"
-#: templates/InvenTree/settings/settings.html:177
-#: templates/InvenTree/settings/settings.html:276
+#: templates/InvenTree/settings/settings.html:171
+#: templates/InvenTree/settings/settings.html:270
msgid "Delete Template"
msgstr "删除模板"
-#: templates/InvenTree/settings/settings.html:255
+#: templates/InvenTree/settings/settings.html:249
msgid "No part parameter templates found"
msgstr "未找到商品参数模板"
+#: templates/InvenTree/settings/settings.html:253
+msgid "ID"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:5
+#: templates/InvenTree/settings/user_settings.html:9
+msgid "User Settings"
+msgstr "用户设置"
+
+#: templates/InvenTree/settings/sidebar.html:8
+#: templates/InvenTree/settings/user.html:11
+msgid "Account Settings"
+msgstr "帐户设置"
+
+#: templates/InvenTree/settings/sidebar.html:10
+#: templates/InvenTree/settings/user_display.html:9
+msgid "Display Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:12
+msgid "Home Page"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:14
+#: templates/InvenTree/settings/user_search.html:9
+msgid "Search Settings"
+msgstr "搜索设置"
+
+#: templates/InvenTree/settings/sidebar.html:16
+msgid "Label Printing"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:18
+#: templates/InvenTree/settings/sidebar.html:34
+msgid "Reporting"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:23
+msgid "Global Settings"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:26
+msgid "Server Configuration"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:32
+msgid "Currencies"
+msgstr ""
+
+#: templates/InvenTree/settings/sidebar.html:38
+msgid "Categories"
+msgstr ""
+
#: templates/InvenTree/settings/so.html:7
msgid "Sales Order Settings"
msgstr "销售订单设置"
@@ -6359,140 +6272,156 @@ msgstr "销售订单设置"
msgid "Stock Settings"
msgstr "库存设置"
-#: templates/InvenTree/settings/user.html:11
-msgid "Account Settings"
-msgstr "帐户设置"
-
-#: templates/InvenTree/settings/user.html:19
+#: templates/InvenTree/settings/user.html:18
#: templates/js/translated/helpers.js:26
msgid "Edit"
msgstr "编辑"
-#: templates/InvenTree/settings/user.html:21
+#: templates/InvenTree/settings/user.html:20
#: templates/account/password_reset_from_key.html:4
#: templates/account/password_reset_from_key.html:7
msgid "Change Password"
msgstr "更改密码"
-#: templates/InvenTree/settings/user.html:28
+#: templates/InvenTree/settings/user.html:31
msgid "Username"
msgstr "用户名"
-#: templates/InvenTree/settings/user.html:32
+#: templates/InvenTree/settings/user.html:35
msgid "First Name"
msgstr "名字"
-#: templates/InvenTree/settings/user.html:36
+#: templates/InvenTree/settings/user.html:39
msgid "Last Name"
msgstr "姓氏"
-#: templates/InvenTree/settings/user.html:42
-msgid "E-Mail"
+#: templates/InvenTree/settings/user.html:54
+msgid "The following email addresses are associated with your account:"
msgstr ""
-#: templates/InvenTree/settings/user.html:47
-msgid "The following e-mail addresses are associated with your account:"
-msgstr ""
-
-#: templates/InvenTree/settings/user.html:61
+#: templates/InvenTree/settings/user.html:74
msgid "Verified"
msgstr ""
-#: templates/InvenTree/settings/user.html:63
+#: templates/InvenTree/settings/user.html:76
msgid "Unverified"
msgstr ""
-#: templates/InvenTree/settings/user.html:65
+#: templates/InvenTree/settings/user.html:78
msgid "Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:71
+#: templates/InvenTree/settings/user.html:84
msgid "Make Primary"
msgstr ""
-#: templates/InvenTree/settings/user.html:72
+#: templates/InvenTree/settings/user.html:85
msgid "Re-send Verification"
msgstr ""
-#: templates/InvenTree/settings/user.html:73
-#: templates/InvenTree/settings/user.html:130
+#: templates/InvenTree/settings/user.html:86
+#: templates/InvenTree/settings/user.html:153
msgid "Remove"
msgstr ""
-#: templates/InvenTree/settings/user.html:80
+#: templates/InvenTree/settings/user.html:93
msgid "Warning:"
msgstr ""
-#: templates/InvenTree/settings/user.html:81
-msgid "You currently do not have any e-mail address set up. You should really add an e-mail address so you can receive notifications, reset your password, etc."
+#: templates/InvenTree/settings/user.html:94
+msgid "You currently do not have any email address set up. You should really add an email address so you can receive notifications, reset your password, etc."
msgstr ""
-#: templates/InvenTree/settings/user.html:88
-msgid "Add E-mail Address"
+#: templates/InvenTree/settings/user.html:101
+msgid "Add Email Address"
msgstr ""
-#: templates/InvenTree/settings/user.html:93
-msgid "Add E-mail"
+#: templates/InvenTree/settings/user.html:111
+msgid "Enter e-mail address"
msgstr ""
-#: templates/InvenTree/settings/user.html:100
+#: templates/InvenTree/settings/user.html:113
+msgid "Add Email"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:123
msgid "Social Accounts"
msgstr ""
-#: templates/InvenTree/settings/user.html:105
+#: templates/InvenTree/settings/user.html:128
msgid "You can sign in to your account using any of the following third party accounts:"
msgstr ""
-#: templates/InvenTree/settings/user.html:138
-msgid "You currently have no social network accounts connected to this account."
+#: templates/InvenTree/settings/user.html:162
+msgid "There are no social network accounts connected to your InvenTree account"
msgstr ""
-#: templates/InvenTree/settings/user.html:142
+#: templates/InvenTree/settings/user.html:167
msgid "Add a 3rd Party Account"
msgstr ""
-#: templates/InvenTree/settings/user.html:153
-msgid "Theme Settings"
-msgstr "主题设置"
-
-#: templates/InvenTree/settings/user.html:174
-msgid "Set Theme"
-msgstr "设置主题"
-
-#: templates/InvenTree/settings/user.html:181
+#: templates/InvenTree/settings/user.html:177
msgid "Language Settings"
msgstr "语言设置"
-#: templates/InvenTree/settings/user.html:200
+#: templates/InvenTree/settings/user.html:186
+msgid "Select language"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:202
#, python-format
msgid "%(lang_translated)s%% translated"
msgstr "%(lang_translated)s%% 已翻译"
-#: templates/InvenTree/settings/user.html:202
+#: templates/InvenTree/settings/user.html:204
msgid "No translations available"
msgstr "无可用翻译"
-#: templates/InvenTree/settings/user.html:209
+#: templates/InvenTree/settings/user.html:211
msgid "Set Language"
msgstr "设置语言"
-#: templates/InvenTree/settings/user.html:214
+#: templates/InvenTree/settings/user.html:213
+msgid "Some languages are not complete"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:215
+msgid "Show only sufficent"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "and hidden."
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:217
+msgid "Show them too"
+msgstr ""
+
+#: templates/InvenTree/settings/user.html:224
msgid "Help the translation efforts!"
msgstr "帮助翻译工作!"
-#: templates/InvenTree/settings/user.html:215
+#: templates/InvenTree/settings/user.html:225
#, python-format
msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged."
msgstr "InventTree web 应用程序的本地语言翻译是 社区通过crowdin贡献。欢迎并鼓励提交信息。"
-#: templates/InvenTree/settings/user.html:223
-msgid "Do you really want to remove the selected e-mail address?"
+#: templates/InvenTree/settings/user.html:233
+msgid "Do you really want to remove the selected email address?"
msgstr ""
-#: templates/InvenTree/settings/user_forms.html:9
-msgid "Form Settings"
+#: templates/InvenTree/settings/user_display.html:25
+msgid "Theme Settings"
+msgstr "主题设置"
+
+#: templates/InvenTree/settings/user_display.html:35
+msgid "Select theme"
msgstr ""
+#: templates/InvenTree/settings/user_display.html:46
+msgid "Set Theme"
+msgstr "设置主题"
+
#: templates/InvenTree/settings/user_homepage.html:9
msgid "Home Page Settings"
msgstr "主页设置"
@@ -6501,128 +6430,133 @@ msgstr "主页设置"
msgid "Label Settings"
msgstr "标签设置"
-#: templates/InvenTree/settings/user_search.html:9
-msgid "Search Settings"
-msgstr "搜索设置"
-
-#: templates/about.html:13
+#: templates/about.html:10
msgid "InvenTree Version Information"
msgstr ""
-#: templates/about.html:22
+#: templates/about.html:11 templates/about.html:105
+#: templates/js/translated/bom.js:283 templates/js/translated/modals.js:53
+#: templates/js/translated/modals.js:567 templates/js/translated/modals.js:661
+#: templates/js/translated/modals.js:964 templates/modals.html:15
+#: templates/modals.html:27 templates/modals.html:39 templates/modals.html:50
+msgid "Close"
+msgstr ""
+
+#: templates/about.html:20
msgid "InvenTree Version"
msgstr ""
-#: templates/about.html:27
+#: templates/about.html:25
msgid "Development Version"
msgstr ""
-#: templates/about.html:30
+#: templates/about.html:28
msgid "Up to Date"
msgstr ""
-#: templates/about.html:32
+#: templates/about.html:30
msgid "Update Available"
msgstr ""
-#: templates/about.html:42
+#: templates/about.html:40
msgid "Commit Hash"
msgstr ""
-#: templates/about.html:49
+#: templates/about.html:47
msgid "Commit Date"
msgstr ""
-#: templates/about.html:55
+#: templates/about.html:53
msgid "InvenTree Documentation"
msgstr ""
-#: templates/about.html:60
+#: templates/about.html:58
msgid "API Version"
msgstr ""
-#: templates/about.html:65
+#: templates/about.html:63
msgid "Python Version"
msgstr ""
-#: templates/about.html:70
+#: templates/about.html:68
msgid "Django Version"
msgstr ""
-#: templates/about.html:75
+#: templates/about.html:73
msgid "View Code on GitHub"
msgstr ""
-#: templates/about.html:80
+#: templates/about.html:78
msgid "Credits"
msgstr ""
-#: templates/about.html:85
+#: templates/about.html:83
msgid "Mobile App"
msgstr ""
-#: templates/about.html:90
+#: templates/about.html:88
msgid "Submit Bug Report"
msgstr ""
-#: templates/about.html:97 templates/clip.html:4
+#: templates/about.html:95 templates/clip.html:4
msgid "copy to clipboard"
msgstr ""
-#: templates/about.html:97
+#: templates/about.html:95
msgid "copy version information"
msgstr ""
-#: templates/about.html:107 templates/js/translated/modals.js:50
-#: templates/js/translated/modals.js:584 templates/js/translated/modals.js:678
-#: templates/js/translated/modals.js:982 templates/modals.html:29
-#: templates/modals.html:54
-msgid "Close"
-msgstr ""
-
#: templates/account/email_confirm.html:6
#: templates/account/email_confirm.html:10
-msgid "Confirm E-mail Address"
+msgid "Confirm Email Address"
msgstr ""
#: templates/account/email_confirm.html:16
#, python-format
-msgid "Please confirm that %(email)s is an e-mail address for user %(user_display)s."
+msgid "Please confirm that %(email)s is an email address for user %(user_display)s."
msgstr ""
#: templates/account/email_confirm.html:27
#, python-format
-msgid "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request."
+msgid "This email confirmation link expired or is invalid. Please issue a new email confirmation request."
msgstr ""
-#: templates/account/login.html:5 templates/account/login.html:14
-#: templates/account/login.html:36
+#: templates/account/login.html:6 templates/account/login.html:16
+#: templates/account/login.html:39
msgid "Sign In"
msgstr ""
-#: templates/account/login.html:19
+#: templates/account/login.html:21
#, python-format
msgid "Please sign in with one\n"
"of your existing third party accounts or sign up\n"
"for a account and sign in below:"
msgstr ""
-#: templates/account/login.html:23
+#: templates/account/login.html:25
#, python-format
msgid "If you have not created an account yet, then please\n"
"sign up first."
msgstr ""
-#: templates/account/login.html:38
+#: templates/account/login.html:42
msgid "Forgot Password?"
msgstr ""
-#: templates/account/login.html:45
+#: templates/account/login.html:47
+msgid "InvenTree demo instance"
+msgstr ""
+
+#: templates/account/login.html:47
+msgid "Click here for login details"
+msgstr ""
+
+#: templates/account/login.html:55
msgid "or use SSO"
msgstr ""
#: templates/account/logout.html:5 templates/account/logout.html:8
-#: templates/account/logout.html:17
+#: templates/account/logout.html:20
msgid "Sign Out"
msgstr ""
@@ -6630,13 +6564,17 @@ msgstr ""
msgid "Are you sure you want to sign out?"
msgstr ""
+#: templates/account/logout.html:19
+msgid "Back to Site"
+msgstr ""
+
#: templates/account/password_reset.html:5
#: templates/account/password_reset.html:12
msgid "Password Reset"
msgstr ""
#: templates/account/password_reset.html:18
-msgid "Forgotten your password? Enter your e-mail address below, and we'll send you an e-mail allowing you to reset it."
+msgid "Forgotten your password? Enter your email address below, and we'll send you an email allowing you to reset it."
msgstr ""
#: templates/account/password_reset.html:23
@@ -6656,11 +6594,11 @@ msgstr ""
msgid "The password reset link was invalid, possibly because it has already been used. Please request a new password reset."
msgstr ""
-#: templates/account/password_reset_from_key.html:17
-msgid "change password"
+#: templates/account/password_reset_from_key.html:18
+msgid "Change password"
msgstr ""
-#: templates/account/password_reset_from_key.html:20
+#: templates/account/password_reset_from_key.html:22
msgid "Your password is now changed."
msgstr ""
@@ -6677,6 +6615,77 @@ msgstr ""
msgid "Or use a SSO-provider for signup"
msgstr ""
+#: templates/admin_button.html:2
+msgid "View in administration panel"
+msgstr ""
+
+#: templates/base.html:96
+msgid "Server Restart Required"
+msgstr ""
+
+#: templates/base.html:99
+msgid "A configuration option has been changed which requires a server restart"
+msgstr ""
+
+#: templates/base.html:99
+msgid "Contact your system administrator for further information"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:7
+msgid "Stock is required for the following build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:8
+#, python-format
+msgid "Build order %(build)s - building %(quantity)s x %(part)s"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:10
+msgid "Click on the following link to view this build order"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:14
+msgid "The following parts are low on required stock"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:18
+#: templates/js/translated/bom.js:991
+msgid "Required Quantity"
+msgstr ""
+
+#: templates/email/build_order_required_stock.html:19
+#: templates/email/low_stock_notification.html:18
+#: templates/js/translated/bom.js:467 templates/js/translated/build.js:1129
+#: templates/js/translated/build.js:1749
+msgid "Available"
+msgstr "空闲"
+
+#: templates/email/build_order_required_stock.html:38
+#: templates/email/low_stock_notification.html:31
+msgid "You are receiving this email because you are subscribed to notifications for this part "
+msgstr ""
+
+#: templates/email/email.html:35
+msgid "InvenTree version"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:7
+#, python-format
+msgid " The available stock for %(part)s has fallen below the configured minimum level"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:9
+msgid "Click on the following link to view this part"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:17
+msgid "Total Stock"
+msgstr ""
+
+#: templates/email/low_stock_notification.html:19
+msgid "Minimum Quantity"
+msgstr ""
+
#: templates/image_download.html:8
msgid "Specify URL for downloading image"
msgstr ""
@@ -6706,7 +6715,7 @@ msgid "Select Test Report Template"
msgstr ""
#: templates/js/report.js:98 templates/js/translated/label.js:29
-#: templates/js/translated/report.js:118 templates/js/translated/stock.js:297
+#: templates/js/translated/report.js:118 templates/js/translated/stock.js:594
msgid "Select Stock Items"
msgstr "选择库存项"
@@ -6738,7 +6747,7 @@ msgstr "打印报表前必须选择Build(s)"
msgid "No report templates found which match selected build(s)"
msgstr ""
-#: templates/js/report.js:205 templates/js/translated/build.js:948
+#: templates/js/report.js:205 templates/js/translated/build.js:1333
#: templates/js/translated/label.js:134 templates/js/translated/report.js:225
msgid "Select Parts"
msgstr "选择商品"
@@ -6772,59 +6781,59 @@ msgstr ""
msgid "Sales Order(s) must be selected before printing report"
msgstr ""
-#: templates/js/translated/api.js:174 templates/js/translated/modals.js:1052
+#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034
msgid "No Response"
msgstr ""
-#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1053
+#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035
msgid "No response from the InvenTree server"
msgstr ""
-#: templates/js/translated/api.js:181
+#: templates/js/translated/api.js:191
msgid "Error 400: Bad request"
msgstr ""
-#: templates/js/translated/api.js:182
+#: templates/js/translated/api.js:192
msgid "API request returned error code 400"
msgstr ""
-#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1062
+#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044
msgid "Error 401: Not Authenticated"
msgstr ""
-#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1063
+#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045
msgid "Authentication credentials not supplied"
msgstr ""
-#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1067
+#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049
msgid "Error 403: Permission Denied"
msgstr ""
-#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1068
+#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050
msgid "You do not have the required permissions to access this function"
msgstr ""
-#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1072
+#: templates/js/translated/api.js:206 templates/js/translated/modals.js:1054
msgid "Error 404: Resource Not Found"
msgstr ""
-#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1073
+#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1055
msgid "The requested resource could not be located on the server"
msgstr ""
-#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1077
+#: templates/js/translated/api.js:211 templates/js/translated/modals.js:1059
msgid "Error 408: Timeout"
msgstr ""
-#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1078
+#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060
msgid "Connection timeout while requesting data from server"
msgstr ""
-#: templates/js/translated/api.js:205
+#: templates/js/translated/api.js:215
msgid "Unhandled Error Code"
msgstr ""
-#: templates/js/translated/api.js:206
+#: templates/js/translated/api.js:216
msgid "Error code"
msgstr ""
@@ -6832,292 +6841,364 @@ msgstr ""
msgid "No attachments found"
msgstr ""
-#: templates/js/translated/attachment.js:91
+#: templates/js/translated/attachment.js:95
msgid "Upload Date"
msgstr ""
-#: templates/js/translated/attachment.js:104
+#: templates/js/translated/attachment.js:108
msgid "Edit attachment"
msgstr ""
-#: templates/js/translated/attachment.js:111
+#: templates/js/translated/attachment.js:115
msgid "Delete attachment"
msgstr ""
-#: templates/js/translated/barcode.js:30
+#: templates/js/translated/barcode.js:29
msgid "Scan barcode data here using wedge scanner"
msgstr ""
-#: templates/js/translated/barcode.js:32
+#: templates/js/translated/barcode.js:31
msgid "Enter barcode data"
msgstr "输入条形码数据"
-#: templates/js/translated/barcode.js:36
+#: templates/js/translated/barcode.js:35
msgid "Barcode"
msgstr "条形码"
-#: templates/js/translated/barcode.js:54
+#: templates/js/translated/barcode.js:53
msgid "Enter optional notes for stock transfer"
msgstr ""
-#: templates/js/translated/barcode.js:55
+#: templates/js/translated/barcode.js:54
msgid "Enter notes"
msgstr ""
-#: templates/js/translated/barcode.js:93
+#: templates/js/translated/barcode.js:92
msgid "Server error"
msgstr ""
-#: templates/js/translated/barcode.js:114
+#: templates/js/translated/barcode.js:113
msgid "Unknown response from server"
msgstr ""
-#: templates/js/translated/barcode.js:141
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/barcode.js:140
+#: templates/js/translated/modals.js:1024
msgid "Invalid server response"
msgstr ""
-#: templates/js/translated/barcode.js:234
+#: templates/js/translated/barcode.js:233
msgid "Scan barcode data below"
msgstr ""
-#: templates/js/translated/barcode.js:281 templates/navbar.html:65
+#: templates/js/translated/barcode.js:280 templates/navbar.html:69
msgid "Scan Barcode"
msgstr "扫描条形码"
-#: templates/js/translated/barcode.js:292
+#: templates/js/translated/barcode.js:291
msgid "No URL in response"
msgstr ""
-#: templates/js/translated/barcode.js:310
+#: templates/js/translated/barcode.js:309
msgid "Link Barcode to Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:333
+#: templates/js/translated/barcode.js:332
msgid "This will remove the association between this stock item and the barcode"
msgstr ""
-#: templates/js/translated/barcode.js:339
+#: templates/js/translated/barcode.js:338
msgid "Unlink"
msgstr ""
-#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:273
+#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570
msgid "Remove stock item"
msgstr ""
-#: templates/js/translated/barcode.js:440
+#: templates/js/translated/barcode.js:439
msgid "Check Stock Items into Location"
msgstr ""
-#: templates/js/translated/barcode.js:444
-#: templates/js/translated/barcode.js:571
+#: templates/js/translated/barcode.js:443
+#: templates/js/translated/barcode.js:573
msgid "Check In"
msgstr ""
-#: templates/js/translated/barcode.js:486
-#: templates/js/translated/barcode.js:610
+#: templates/js/translated/barcode.js:485
+#: templates/js/translated/barcode.js:612
msgid "Error transferring stock"
msgstr ""
-#: templates/js/translated/barcode.js:505
+#: templates/js/translated/barcode.js:507
msgid "Stock Item already scanned"
msgstr ""
-#: templates/js/translated/barcode.js:509
+#: templates/js/translated/barcode.js:511
msgid "Stock Item already in this location"
msgstr ""
-#: templates/js/translated/barcode.js:516
+#: templates/js/translated/barcode.js:518
msgid "Added stock item"
msgstr ""
-#: templates/js/translated/barcode.js:523
+#: templates/js/translated/barcode.js:525
msgid "Barcode does not match Stock Item"
msgstr ""
-#: templates/js/translated/barcode.js:566
+#: templates/js/translated/barcode.js:568
msgid "Check Into Location"
msgstr ""
-#: templates/js/translated/barcode.js:629
+#: templates/js/translated/barcode.js:633
msgid "Barcode does not match a valid location"
msgstr ""
-#: templates/js/translated/bom.js:234 templates/js/translated/build.js:1495
+#: templates/js/translated/bom.js:184
+msgid "Remove substitute part"
+msgstr ""
+
+#: templates/js/translated/bom.js:228
+msgid "Select and add a new variant item using the input below"
+msgstr ""
+
+#: templates/js/translated/bom.js:239
+msgid "Are you sure you wish to remove this substitute part link?"
+msgstr ""
+
+#: templates/js/translated/bom.js:245
+msgid "Remove Substitute Part"
+msgstr ""
+
+#: templates/js/translated/bom.js:284
+msgid "Add Substitute"
+msgstr ""
+
+#: templates/js/translated/bom.js:285
+msgid "Edit BOM Item Substitutes"
+msgstr ""
+
+#: templates/js/translated/bom.js:404
+msgid "Substitutes Available"
+msgstr ""
+
+#: templates/js/translated/bom.js:408 templates/js/translated/build.js:1111
+msgid "Variant stock allowed"
+msgstr ""
+
+#: templates/js/translated/bom.js:413
msgid "Open subassembly"
msgstr ""
-#: templates/js/translated/bom.js:288 templates/js/translated/build.js:744
-#: templates/js/translated/build.js:1345 templates/js/translated/build.js:1522
-msgid "Available"
-msgstr "空闲"
+#: templates/js/translated/bom.js:485
+msgid "Substitutes"
+msgstr ""
-#: templates/js/translated/bom.js:307
+#: templates/js/translated/bom.js:500
msgid "Purchase Price Range"
msgstr ""
-#: templates/js/translated/bom.js:314
+#: templates/js/translated/bom.js:507
msgid "Purchase Price Average"
msgstr ""
-#: templates/js/translated/bom.js:363 templates/js/translated/bom.js:449
+#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645
msgid "View BOM"
msgstr ""
-#: templates/js/translated/bom.js:415 templates/js/translated/build.js:798
-#: templates/js/translated/build.js:1545 templates/js/translated/order.js:1285
+#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183
+#: templates/js/translated/order.js:1298
msgid "Actions"
msgstr ""
-#: templates/js/translated/bom.js:423
+#: templates/js/translated/bom.js:616
msgid "Validate BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:425
+#: templates/js/translated/bom.js:618
msgid "This line has been validated"
msgstr ""
-#: templates/js/translated/bom.js:427 templates/js/translated/bom.js:590
+#: templates/js/translated/bom.js:620
+msgid "Edit substitute parts"
+msgstr ""
+
+#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796
msgid "Edit BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:429 templates/js/translated/bom.js:575
+#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779
msgid "Delete BOM Item"
msgstr ""
-#: templates/js/translated/bom.js:520 templates/js/translated/build.js:485
-#: templates/js/translated/build.js:1593
+#: templates/js/translated/bom.js:718 templates/js/translated/build.js:855
msgid "No BOM items found"
msgstr ""
-#: templates/js/translated/build.js:71
-msgid "Edit Build Order"
+#: templates/js/translated/bom.js:774
+msgid "Are you sure you want to delete this BOM item?"
msgstr ""
-#: templates/js/translated/build.js:105
-msgid "Create Build Order"
-msgstr ""
-
-#: templates/js/translated/build.js:138
-msgid "Allocate stock items to this build output"
-msgstr ""
-
-#: templates/js/translated/build.js:146
-msgid "Unallocate stock from build output"
-msgstr ""
-
-#: templates/js/translated/build.js:155
-msgid "Complete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:164
-msgid "Delete build output"
-msgstr ""
-
-#: templates/js/translated/build.js:265
-msgid "No build order allocations found"
-msgstr ""
-
-#: templates/js/translated/build.js:303 templates/js/translated/order.js:1159
-msgid "Location not specified"
-msgstr "未指定仓储地点"
-
-#: templates/js/translated/build.js:675 templates/js/translated/build.js:1356
-#: templates/js/translated/order.js:1292
-msgid "Edit stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:677 templates/js/translated/build.js:1357
-#: templates/js/translated/order.js:1293
-msgid "Delete stock allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:695
-msgid "Edit Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:705
-msgid "Remove Allocation"
-msgstr ""
-
-#: templates/js/translated/build.js:718
+#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095
msgid "Required Part"
msgstr ""
-#: templates/js/translated/build.js:739
+#: templates/js/translated/bom.js:996
+msgid "Inherited from parent BOM"
+msgstr ""
+
+#: templates/js/translated/build.js:78
+msgid "Edit Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:112
+msgid "Create Build Order"
+msgstr ""
+
+#: templates/js/translated/build.js:133
+msgid "Allocate stock items to this build output"
+msgstr ""
+
+#: templates/js/translated/build.js:144
+msgid "Unallocate stock from build output"
+msgstr ""
+
+#: templates/js/translated/build.js:153
+msgid "Complete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:161
+msgid "Delete build output"
+msgstr ""
+
+#: templates/js/translated/build.js:184
+msgid "Are you sure you wish to unallocate stock items from this build?"
+msgstr ""
+
+#: templates/js/translated/build.js:202
+msgid "Unallocate Stock Items"
+msgstr ""
+
+#: templates/js/translated/build.js:220
+msgid "Select Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:221
+msgid "At least one build output must be selected"
+msgstr ""
+
+#: templates/js/translated/build.js:275
+msgid "Output"
+msgstr ""
+
+#: templates/js/translated/build.js:291
+msgid "Complete Build Outputs"
+msgstr ""
+
+#: templates/js/translated/build.js:386
+msgid "No build order allocations found"
+msgstr ""
+
+#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172
+msgid "Location not specified"
+msgstr "未指定仓储地点"
+
+#: templates/js/translated/build.js:603
+msgid "No active build outputs found"
+msgstr ""
+
+#: templates/js/translated/build.js:1052 templates/js/translated/build.js:1760
+#: templates/js/translated/order.js:1305
+msgid "Edit stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761
+#: templates/js/translated/order.js:1306
+msgid "Delete stock allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1072
+msgid "Edit Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1082
+msgid "Remove Allocation"
+msgstr ""
+
+#: templates/js/translated/build.js:1107
+msgid "Substitute parts available"
+msgstr ""
+
+#: templates/js/translated/build.js:1124
msgid "Quantity Per"
msgstr ""
-#: templates/js/translated/build.js:749 templates/js/translated/build.js:975
-#: templates/js/translated/build.js:1352 templates/js/translated/order.js:1514
+#: templates/js/translated/build.js:1134 templates/js/translated/build.js:1360
+#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1535
msgid "Allocated"
msgstr ""
-#: templates/js/translated/build.js:805 templates/js/translated/build.js:1553
-#: templates/js/translated/order.js:1567
+#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589
msgid "Build stock"
msgstr ""
-#: templates/js/translated/build.js:809 templates/js/translated/build.js:1557
-#: templates/stock_table.html:59
+#: templates/js/translated/build.js:1194 templates/stock_table.html:52
msgid "Order stock"
msgstr ""
-#: templates/js/translated/build.js:812 templates/js/translated/order.js:1560
+#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582
msgid "Allocate stock"
msgstr ""
-#: templates/js/translated/build.js:880
+#: templates/js/translated/build.js:1262
msgid "Specify stock allocation quantity"
msgstr ""
-#: templates/js/translated/build.js:949
+#: templates/js/translated/build.js:1334
msgid "You must select at least one part to allocate"
msgstr ""
-#: templates/js/translated/build.js:963
+#: templates/js/translated/build.js:1348
msgid "Select source location (leave blank to take from all locations)"
msgstr ""
-#: templates/js/translated/build.js:992
+#: templates/js/translated/build.js:1377
msgid "Confirm stock allocation"
msgstr "确认库存分配"
-#: templates/js/translated/build.js:993
+#: templates/js/translated/build.js:1378
msgid "Allocate Stock Items to Build Order"
msgstr ""
-#: templates/js/translated/build.js:1004
+#: templates/js/translated/build.js:1389
msgid "No matching stock locations"
msgstr ""
-#: templates/js/translated/build.js:1048
+#: templates/js/translated/build.js:1451
msgid "No matching stock items"
msgstr ""
-#: templates/js/translated/build.js:1172
+#: templates/js/translated/build.js:1576
msgid "No builds matching query"
msgstr ""
-#: templates/js/translated/build.js:1189 templates/js/translated/part.js:856
-#: templates/js/translated/part.js:1134 templates/js/translated/stock.js:762
-#: templates/js/translated/stock.js:1456
+#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966
+#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1064
+#: templates/js/translated/stock.js:1841
msgid "Select"
msgstr ""
-#: templates/js/translated/build.js:1209
+#: templates/js/translated/build.js:1613
msgid "Build order is overdue"
msgstr ""
-#: templates/js/translated/build.js:1270 templates/js/translated/stock.js:1675
+#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060
msgid "No user information"
msgstr "没有用户信息"
-#: templates/js/translated/build.js:1282
+#: templates/js/translated/build.js:1686
msgid "No information"
msgstr ""
-#: templates/js/translated/build.js:1333
+#: templates/js/translated/build.js:1737
msgid "No parts allocated for"
msgstr ""
@@ -7125,7 +7206,7 @@ msgstr ""
msgid "Add Manufacturer"
msgstr "添加制造商"
-#: templates/js/translated/company.js:78 templates/js/translated/company.js:176
+#: templates/js/translated/company.js:78 templates/js/translated/company.js:177
msgid "Add Manufacturer Part"
msgstr "添加制造商商品"
@@ -7137,97 +7218,97 @@ msgstr "编辑制造商商品"
msgid "Delete Manufacturer Part"
msgstr "删除制造商商品"
-#: templates/js/translated/company.js:164 templates/js/translated/order.js:89
+#: templates/js/translated/company.js:165 templates/js/translated/order.js:90
msgid "Add Supplier"
msgstr "添加供应商"
-#: templates/js/translated/company.js:192
+#: templates/js/translated/company.js:193
msgid "Add Supplier Part"
msgstr "添加供应商商品"
-#: templates/js/translated/company.js:207
+#: templates/js/translated/company.js:208
msgid "Edit Supplier Part"
msgstr "编辑供应商商品"
-#: templates/js/translated/company.js:217
+#: templates/js/translated/company.js:218
msgid "Delete Supplier Part"
msgstr "删除供应商商品"
-#: templates/js/translated/company.js:264
+#: templates/js/translated/company.js:265
msgid "Edit Company"
msgstr "编辑公司信息"
-#: templates/js/translated/company.js:285
+#: templates/js/translated/company.js:286
msgid "Add new Company"
msgstr "增加新的公司信息"
-#: templates/js/translated/company.js:362
+#: templates/js/translated/company.js:363
msgid "Parts Supplied"
msgstr ""
-#: templates/js/translated/company.js:371
+#: templates/js/translated/company.js:372
msgid "Parts Manufactured"
msgstr ""
-#: templates/js/translated/company.js:385
+#: templates/js/translated/company.js:386
msgid "No company information found"
msgstr "未找到该公司信息"
-#: templates/js/translated/company.js:404
+#: templates/js/translated/company.js:405
msgid "The following manufacturer parts will be deleted"
msgstr ""
-#: templates/js/translated/company.js:421
+#: templates/js/translated/company.js:422
msgid "Delete Manufacturer Parts"
msgstr "删除制造商商品"
-#: templates/js/translated/company.js:476
+#: templates/js/translated/company.js:477
msgid "No manufacturer parts found"
msgstr ""
-#: templates/js/translated/company.js:496
-#: templates/js/translated/company.js:753 templates/js/translated/part.js:427
-#: templates/js/translated/part.js:512
+#: templates/js/translated/company.js:497
+#: templates/js/translated/company.js:754 templates/js/translated/part.js:449
+#: templates/js/translated/part.js:534
msgid "Template part"
msgstr ""
-#: templates/js/translated/company.js:500
-#: templates/js/translated/company.js:757 templates/js/translated/part.js:431
-#: templates/js/translated/part.js:516
+#: templates/js/translated/company.js:501
+#: templates/js/translated/company.js:758 templates/js/translated/part.js:453
+#: templates/js/translated/part.js:538
msgid "Assembled part"
msgstr ""
-#: templates/js/translated/company.js:627 templates/js/translated/part.js:604
+#: templates/js/translated/company.js:628 templates/js/translated/part.js:626
msgid "No parameters found"
msgstr "无指定参数"
-#: templates/js/translated/company.js:664 templates/js/translated/part.js:646
+#: templates/js/translated/company.js:665 templates/js/translated/part.js:668
msgid "Edit parameter"
msgstr "编辑参数"
-#: templates/js/translated/company.js:665 templates/js/translated/part.js:647
+#: templates/js/translated/company.js:666 templates/js/translated/part.js:669
msgid "Delete parameter"
msgstr "删除参数"
-#: templates/js/translated/company.js:684 templates/js/translated/part.js:664
+#: templates/js/translated/company.js:685 templates/js/translated/part.js:686
msgid "Edit Parameter"
msgstr "编辑参数"
-#: templates/js/translated/company.js:695 templates/js/translated/part.js:676
+#: templates/js/translated/company.js:696 templates/js/translated/part.js:698
msgid "Delete Parameter"
msgstr "删除参数"
-#: templates/js/translated/company.js:733
+#: templates/js/translated/company.js:734
msgid "No supplier parts found"
msgstr "未找到供应商商品"
#: templates/js/translated/filters.js:178
-#: templates/js/translated/filters.js:407
+#: templates/js/translated/filters.js:420
msgid "true"
msgstr ""
#: templates/js/translated/filters.js:182
-#: templates/js/translated/filters.js:408
+#: templates/js/translated/filters.js:421
msgid "false"
msgstr ""
@@ -7235,57 +7316,61 @@ msgstr ""
msgid "Select filter"
msgstr "选择筛选项"
-#: templates/js/translated/filters.js:284
+#: templates/js/translated/filters.js:286
msgid "Reload data"
msgstr ""
-#: templates/js/translated/filters.js:286
+#: templates/js/translated/filters.js:290
msgid "Add new filter"
msgstr ""
-#: templates/js/translated/filters.js:289
+#: templates/js/translated/filters.js:293
msgid "Clear all filters"
msgstr ""
-#: templates/js/translated/filters.js:317
+#: templates/js/translated/filters.js:329
msgid "Create filter"
msgstr ""
-#: templates/js/translated/forms.js:323 templates/js/translated/forms.js:336
-#: templates/js/translated/forms.js:348 templates/js/translated/forms.js:360
+#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364
+#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392
msgid "Action Prohibited"
msgstr ""
-#: templates/js/translated/forms.js:324
+#: templates/js/translated/forms.js:351
msgid "Create operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:337
+#: templates/js/translated/forms.js:366
msgid "Update operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:349
+#: templates/js/translated/forms.js:380
msgid "Delete operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:361
+#: templates/js/translated/forms.js:394
msgid "View operation not allowed"
msgstr ""
-#: templates/js/translated/forms.js:968 templates/modals.html:21
-#: templates/modals.html:47
+#: templates/js/translated/forms.js:679
+msgid "Enter a valid number"
+msgstr ""
+
+#: templates/js/translated/forms.js:1071 templates/modals.html:19
+#: templates/modals.html:43
msgid "Form errors exist"
msgstr ""
-#: templates/js/translated/forms.js:1323
+#: templates/js/translated/forms.js:1457
msgid "No results found"
msgstr ""
-#: templates/js/translated/forms.js:1525
+#: templates/js/translated/forms.js:1661
msgid "Searching"
msgstr ""
-#: templates/js/translated/forms.js:1742
+#: templates/js/translated/forms.js:1878
msgid "Clear input"
msgstr ""
@@ -7342,62 +7427,62 @@ msgstr "选择标签"
msgid "Select Label Template"
msgstr "选择标签模板"
-#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:120
-#: templates/js/translated/modals.js:610
+#: templates/js/translated/modals.js:75 templates/js/translated/modals.js:119
+#: templates/js/translated/modals.js:593
msgid "Cancel"
msgstr "取消"
-#: templates/js/translated/modals.js:77 templates/js/translated/modals.js:119
-#: templates/js/translated/modals.js:677 templates/js/translated/modals.js:981
-#: templates/modals.html:30 templates/modals.html:55
+#: templates/js/translated/modals.js:76 templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:660 templates/js/translated/modals.js:963
+#: templates/modals.html:28 templates/modals.html:51
msgid "Submit"
msgstr ""
-#: templates/js/translated/modals.js:118
+#: templates/js/translated/modals.js:117
msgid "Form Title"
msgstr ""
-#: templates/js/translated/modals.js:397
+#: templates/js/translated/modals.js:380
msgid "Waiting for server..."
msgstr ""
-#: templates/js/translated/modals.js:556
+#: templates/js/translated/modals.js:539
msgid "Show Error Information"
msgstr ""
-#: templates/js/translated/modals.js:609
+#: templates/js/translated/modals.js:592
msgid "Accept"
msgstr ""
-#: templates/js/translated/modals.js:666
+#: templates/js/translated/modals.js:649
msgid "Loading Data"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Invalid response from server"
msgstr ""
-#: templates/js/translated/modals.js:933
+#: templates/js/translated/modals.js:915
msgid "Form data missing from server response"
msgstr ""
-#: templates/js/translated/modals.js:945
+#: templates/js/translated/modals.js:927
msgid "Error posting form data"
msgstr ""
-#: templates/js/translated/modals.js:1042
+#: templates/js/translated/modals.js:1024
msgid "JSON response missing form data"
msgstr ""
-#: templates/js/translated/modals.js:1057
+#: templates/js/translated/modals.js:1039
msgid "Error 400: Bad Request"
msgstr ""
-#: templates/js/translated/modals.js:1058
+#: templates/js/translated/modals.js:1040
msgid "Server returned error code 400"
msgstr ""
-#: templates/js/translated/modals.js:1081
+#: templates/js/translated/modals.js:1063
msgid "Error requesting form data"
msgstr ""
@@ -7405,35 +7490,35 @@ msgstr ""
msgid "Company ID"
msgstr "公司ID"
-#: templates/js/translated/model_renderers.js:90
+#: templates/js/translated/model_renderers.js:77
msgid "Stock ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:125
+#: templates/js/translated/model_renderers.js:130
msgid "Location ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:142
+#: templates/js/translated/model_renderers.js:147
msgid "Build ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:177
+#: templates/js/translated/model_renderers.js:182
msgid "Part ID"
msgstr "商品ID"
-#: templates/js/translated/model_renderers.js:231
+#: templates/js/translated/model_renderers.js:236
msgid "Order ID"
msgstr ""
-#: templates/js/translated/model_renderers.js:251
+#: templates/js/translated/model_renderers.js:256
msgid "Category ID"
msgstr "类别 ID"
-#: templates/js/translated/model_renderers.js:288
+#: templates/js/translated/model_renderers.js:293
msgid "Manufacturer Part ID"
msgstr "制造商商品ID"
-#: templates/js/translated/model_renderers.js:317
+#: templates/js/translated/model_renderers.js:322
msgid "Supplier Part ID"
msgstr "供应商商品ID"
@@ -7445,565 +7530,630 @@ msgstr ""
msgid "Create Sales Order"
msgstr ""
-#: templates/js/translated/order.js:207
+#: templates/js/translated/order.js:208
msgid "Export Order"
msgstr ""
-#: templates/js/translated/order.js:210 templates/js/translated/stock.js:96
+#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393
msgid "Format"
msgstr ""
-#: templates/js/translated/order.js:211 templates/js/translated/stock.js:97
+#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394
msgid "Select file format"
msgstr ""
-#: templates/js/translated/order.js:299
+#: templates/js/translated/order.js:300
msgid "Select Line Items"
msgstr ""
-#: templates/js/translated/order.js:300
+#: templates/js/translated/order.js:301
msgid "At least one line item must be selected"
msgstr ""
-#: templates/js/translated/order.js:325
+#: templates/js/translated/order.js:326
msgid "Quantity to receive"
msgstr ""
-#: templates/js/translated/order.js:359 templates/js/translated/stock.js:1343
+#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643
msgid "Stock Status"
msgstr ""
-#: templates/js/translated/order.js:426
+#: templates/js/translated/order.js:427
msgid "Order Code"
msgstr "订单编码"
-#: templates/js/translated/order.js:427
+#: templates/js/translated/order.js:428
msgid "Ordered"
msgstr ""
-#: templates/js/translated/order.js:429
+#: templates/js/translated/order.js:430
msgid "Receive"
msgstr ""
-#: templates/js/translated/order.js:448
+#: templates/js/translated/order.js:449
msgid "Confirm receipt of items"
msgstr ""
-#: templates/js/translated/order.js:449
+#: templates/js/translated/order.js:450
msgid "Receive Purchase Order Items"
msgstr ""
-#: templates/js/translated/order.js:626
+#: templates/js/translated/order.js:627
msgid "No purchase orders found"
msgstr ""
-#: templates/js/translated/order.js:651 templates/js/translated/order.js:1028
+#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041
msgid "Order is overdue"
msgstr ""
-#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602
+#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624
msgid "Edit Line Item"
msgstr ""
-#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613
+#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635
msgid "Delete Line Item"
msgstr ""
-#: templates/js/translated/order.js:800
+#: templates/js/translated/order.js:801
msgid "No line items found"
msgstr ""
-#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432
+#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445
msgid "Total"
msgstr ""
-#: templates/js/translated/order.js:880 templates/js/translated/order.js:1457
-#: templates/js/translated/part.js:1343 templates/js/translated/part.js:1554
+#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470
+#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805
msgid "Unit Price"
msgstr "单价"
-#: templates/js/translated/order.js:889 templates/js/translated/order.js:1464
-msgid "Total price"
+#: templates/js/translated/order.js:897 templates/js/translated/order.js:1486
+msgid "Total Price"
msgstr ""
-#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573
+#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595
msgid "Edit line item"
msgstr ""
-#: templates/js/translated/order.js:963
+#: templates/js/translated/order.js:976
msgid "Delete line item"
msgstr ""
-#: templates/js/translated/order.js:967
+#: templates/js/translated/order.js:980
msgid "Receive line item"
msgstr ""
-#: templates/js/translated/order.js:1004
+#: templates/js/translated/order.js:1017
msgid "No sales orders found"
msgstr ""
-#: templates/js/translated/order.js:1042
+#: templates/js/translated/order.js:1055
msgid "Invalid Customer"
msgstr ""
-#: templates/js/translated/order.js:1120
+#: templates/js/translated/order.js:1133
msgid "No sales order allocations found"
msgstr ""
-#: templates/js/translated/order.js:1213
+#: templates/js/translated/order.js:1226
msgid "Edit Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1231
+#: templates/js/translated/order.js:1244
msgid "Delete Stock Allocation"
msgstr ""
-#: templates/js/translated/order.js:1273
+#: templates/js/translated/order.js:1286
msgid "Stock location not specified"
msgstr ""
-#: templates/js/translated/order.js:1514
+#: templates/js/translated/order.js:1535
msgid "Fulfilled"
msgstr ""
-#: templates/js/translated/order.js:1557
+#: templates/js/translated/order.js:1579
msgid "Allocate serial numbers"
msgstr ""
-#: templates/js/translated/order.js:1563
+#: templates/js/translated/order.js:1585
msgid "Purchase stock"
msgstr ""
-#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725
+#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771
msgid "Calculate price"
msgstr ""
-#: templates/js/translated/order.js:1574
+#: templates/js/translated/order.js:1596
msgid "Delete line item "
msgstr ""
-#: templates/js/translated/order.js:1673
+#: templates/js/translated/order.js:1719
msgid "Allocate Stock Item"
msgstr ""
-#: templates/js/translated/order.js:1733
+#: templates/js/translated/order.js:1779
msgid "Update Unit Price"
msgstr ""
-#: templates/js/translated/order.js:1747
+#: templates/js/translated/order.js:1793
msgid "No matching line items"
msgstr ""
-#: templates/js/translated/part.js:49
+#: templates/js/translated/part.js:51
msgid "Part Attributes"
msgstr "商品属性"
-#: templates/js/translated/part.js:53
+#: templates/js/translated/part.js:55
msgid "Part Creation Options"
msgstr "商品创建选项"
-#: templates/js/translated/part.js:57
+#: templates/js/translated/part.js:59
msgid "Part Duplication Options"
msgstr "商品重复选项"
-#: templates/js/translated/part.js:61
+#: templates/js/translated/part.js:63
msgid "Supplier Options"
msgstr ""
-#: templates/js/translated/part.js:75
+#: templates/js/translated/part.js:77
msgid "Add Part Category"
msgstr "增加商品类别"
-#: templates/js/translated/part.js:164
+#: templates/js/translated/part.js:166
msgid "Create Initial Stock"
msgstr ""
-#: templates/js/translated/part.js:165
+#: templates/js/translated/part.js:167
msgid "Create an initial stock item for this part"
msgstr ""
-#: templates/js/translated/part.js:172
+#: templates/js/translated/part.js:174
msgid "Initial Stock Quantity"
msgstr ""
-#: templates/js/translated/part.js:173
+#: templates/js/translated/part.js:175
msgid "Specify initial stock quantity for this part"
msgstr ""
-#: templates/js/translated/part.js:180
+#: templates/js/translated/part.js:182
msgid "Select destination stock location"
msgstr ""
-#: templates/js/translated/part.js:191
+#: templates/js/translated/part.js:193
msgid "Copy Category Parameters"
msgstr "复制类别参数"
-#: templates/js/translated/part.js:192
+#: templates/js/translated/part.js:194
msgid "Copy parameter templates from selected part category"
msgstr ""
-#: templates/js/translated/part.js:200
+#: templates/js/translated/part.js:202
msgid "Add Supplier Data"
msgstr ""
-#: templates/js/translated/part.js:201
+#: templates/js/translated/part.js:203
msgid "Create initial supplier data for this part"
msgstr ""
-#: templates/js/translated/part.js:257
+#: templates/js/translated/part.js:259
msgid "Copy Image"
msgstr ""
-#: templates/js/translated/part.js:258
+#: templates/js/translated/part.js:260
msgid "Copy image from original part"
msgstr ""
-#: templates/js/translated/part.js:265
-msgid "Copy BOM"
-msgstr ""
-
-#: templates/js/translated/part.js:266
+#: templates/js/translated/part.js:268
msgid "Copy bill of materials from original part"
msgstr ""
-#: templates/js/translated/part.js:273
+#: templates/js/translated/part.js:275
msgid "Copy Parameters"
msgstr ""
-#: templates/js/translated/part.js:274
+#: templates/js/translated/part.js:276
msgid "Copy parameter data from original part"
msgstr ""
-#: templates/js/translated/part.js:287
+#: templates/js/translated/part.js:289
msgid "Parent part category"
msgstr ""
-#: templates/js/translated/part.js:331
+#: templates/js/translated/part.js:333
msgid "Edit Part"
msgstr "编辑商品"
-#: templates/js/translated/part.js:419 templates/js/translated/part.js:504
+#: templates/js/translated/part.js:335
+msgid "Part edited"
+msgstr ""
+
+#: templates/js/translated/part.js:403
+msgid "You are subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:405
+msgid "You have subscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:410
+msgid "Subscribe to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:412
+msgid "You have unsubscribed to notifications for this item"
+msgstr ""
+
+#: templates/js/translated/part.js:441 templates/js/translated/part.js:526
msgid "Trackable part"
msgstr "可追溯商品"
-#: templates/js/translated/part.js:423 templates/js/translated/part.js:508
+#: templates/js/translated/part.js:445 templates/js/translated/part.js:530
msgid "Virtual part"
msgstr "虚拟商品"
-#: templates/js/translated/part.js:435
-msgid "Starred part"
-msgstr "已标记商品"
+#: templates/js/translated/part.js:457
+msgid "Subscribed part"
+msgstr ""
-#: templates/js/translated/part.js:439
+#: templates/js/translated/part.js:461
msgid "Salable part"
msgstr "可销售商品"
-#: templates/js/translated/part.js:554
+#: templates/js/translated/part.js:576
msgid "No variants found"
msgstr ""
-#: templates/js/translated/part.js:743 templates/js/translated/part.js:1005
+#: templates/js/translated/part.js:765
+msgid "Delete part relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:789
+msgid "Delete Part Relationship"
+msgstr ""
+
+#: templates/js/translated/part.js:856 templates/js/translated/part.js:1116
msgid "No parts found"
msgstr ""
-#: templates/js/translated/part.js:932
+#: templates/js/translated/part.js:1026
msgid "No category"
msgstr "没有分类"
-#: templates/js/translated/part.js:955
-#: templates/js/translated/table_filters.js:359
+#: templates/js/translated/part.js:1049
+#: templates/js/translated/table_filters.js:381
msgid "Low stock"
msgstr ""
-#: templates/js/translated/part.js:1159 templates/js/translated/stock.js:1480
+#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312
+#: templates/js/translated/stock.js:1802
+msgid "Display as list"
+msgstr ""
+
+#: templates/js/translated/part.js:1156
+msgid "Display as grid"
+msgstr ""
+
+#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1821
+msgid "Display as tree"
+msgstr ""
+
+#: templates/js/translated/part.js:1395
+msgid "Subscribed category"
+msgstr ""
+
+#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1865
msgid "Path"
msgstr ""
-#: templates/js/translated/part.js:1202
+#: templates/js/translated/part.js:1453
msgid "No test templates matching query"
msgstr ""
-#: templates/js/translated/part.js:1253 templates/js/translated/stock.js:493
+#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:786
msgid "Edit test result"
msgstr ""
-#: templates/js/translated/part.js:1254 templates/js/translated/stock.js:494
+#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:787
msgid "Delete test result"
msgstr ""
-#: templates/js/translated/part.js:1260
+#: templates/js/translated/part.js:1511
msgid "This test is defined for a parent part"
msgstr ""
-#: templates/js/translated/part.js:1282
+#: templates/js/translated/part.js:1533
msgid "Edit Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1296
+#: templates/js/translated/part.js:1547
msgid "Delete Test Result Template"
msgstr ""
-#: templates/js/translated/part.js:1321
+#: templates/js/translated/part.js:1572
#, python-brace-format
msgid "No ${human_name} information found"
msgstr ""
-#: templates/js/translated/part.js:1376
+#: templates/js/translated/part.js:1627
#, python-brace-format
msgid "Edit ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1377
+#: templates/js/translated/part.js:1628
#, python-brace-format
msgid "Delete ${human_name}"
msgstr ""
-#: templates/js/translated/part.js:1478
+#: templates/js/translated/part.js:1729
msgid "Single Price"
msgstr ""
-#: templates/js/translated/part.js:1497
+#: templates/js/translated/part.js:1748
msgid "Single Price Difference"
msgstr ""
-#: templates/js/translated/stock.js:63
+#: templates/js/translated/stock.js:70
+msgid "Serialize Stock Item"
+msgstr ""
+
+#: templates/js/translated/stock.js:90
msgid "Parent stock location"
msgstr ""
-#: templates/js/translated/stock.js:93
+#: templates/js/translated/stock.js:126
+msgid "New Stock Location"
+msgstr ""
+
+#: templates/js/translated/stock.js:189
+msgid "Enter initial quantity for this stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:195
+msgid "Enter serial numbers for new stock (or leave blank)"
+msgstr ""
+
+#: templates/js/translated/stock.js:338
+msgid "Created new stock item"
+msgstr ""
+
+#: templates/js/translated/stock.js:351
+msgid "Created multiple stock items"
+msgstr ""
+
+#: templates/js/translated/stock.js:390
msgid "Export Stock"
msgstr ""
-#: templates/js/translated/stock.js:104
+#: templates/js/translated/stock.js:401
msgid "Include Sublocations"
msgstr ""
-#: templates/js/translated/stock.js:105
+#: templates/js/translated/stock.js:402
msgid "Include stock items in sublocations"
msgstr ""
-#: templates/js/translated/stock.js:147
+#: templates/js/translated/stock.js:444
msgid "Transfer Stock"
msgstr ""
-#: templates/js/translated/stock.js:148
+#: templates/js/translated/stock.js:445
msgid "Move"
msgstr ""
-#: templates/js/translated/stock.js:154
+#: templates/js/translated/stock.js:451
msgid "Count Stock"
msgstr ""
-#: templates/js/translated/stock.js:155
+#: templates/js/translated/stock.js:452
msgid "Count"
msgstr ""
-#: templates/js/translated/stock.js:159
+#: templates/js/translated/stock.js:456
msgid "Remove Stock"
msgstr ""
-#: templates/js/translated/stock.js:160
+#: templates/js/translated/stock.js:457
msgid "Take"
msgstr ""
-#: templates/js/translated/stock.js:164
+#: templates/js/translated/stock.js:461
msgid "Add Stock"
msgstr ""
-#: templates/js/translated/stock.js:165 users/models.py:195
+#: templates/js/translated/stock.js:462 users/models.py:200
msgid "Add"
msgstr "添加"
-#: templates/js/translated/stock.js:169 templates/stock_table.html:63
+#: templates/js/translated/stock.js:466 templates/stock_table.html:56
msgid "Delete Stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Quantity cannot be adjusted for serialized stock"
msgstr ""
-#: templates/js/translated/stock.js:258
+#: templates/js/translated/stock.js:555
msgid "Specify stock quantity"
msgstr ""
-#: templates/js/translated/stock.js:298
+#: templates/js/translated/stock.js:595
msgid "You must select at least one available stock item"
msgstr ""
-#: templates/js/translated/stock.js:456
+#: templates/js/translated/stock.js:753
msgid "PASS"
msgstr ""
-#: templates/js/translated/stock.js:458
+#: templates/js/translated/stock.js:755
msgid "FAIL"
msgstr ""
-#: templates/js/translated/stock.js:463
+#: templates/js/translated/stock.js:760
msgid "NO RESULT"
msgstr ""
-#: templates/js/translated/stock.js:489
+#: templates/js/translated/stock.js:782
msgid "Add test result"
msgstr ""
-#: templates/js/translated/stock.js:515
+#: templates/js/translated/stock.js:808
msgid "No test results found"
msgstr ""
-#: templates/js/translated/stock.js:563
+#: templates/js/translated/stock.js:865
msgid "Test Date"
msgstr ""
-#: templates/js/translated/stock.js:670
+#: templates/js/translated/stock.js:972
msgid "In production"
msgstr "正在生产"
-#: templates/js/translated/stock.js:674
+#: templates/js/translated/stock.js:976
msgid "Installed in Stock Item"
msgstr ""
-#: templates/js/translated/stock.js:678
+#: templates/js/translated/stock.js:980
msgid "Shipped to customer"
msgstr ""
-#: templates/js/translated/stock.js:682
+#: templates/js/translated/stock.js:984
msgid "Assigned to Sales Order"
msgstr ""
-#: templates/js/translated/stock.js:688
+#: templates/js/translated/stock.js:990
msgid "No stock location set"
msgstr "未设置仓储地点"
-#: templates/js/translated/stock.js:844
+#: templates/js/translated/stock.js:1148
msgid "Stock item is in production"
msgstr "库存品正在生产"
-#: templates/js/translated/stock.js:849
+#: templates/js/translated/stock.js:1153
msgid "Stock item assigned to sales order"
msgstr ""
-#: templates/js/translated/stock.js:852
+#: templates/js/translated/stock.js:1156
msgid "Stock item assigned to customer"
msgstr ""
-#: templates/js/translated/stock.js:856
+#: templates/js/translated/stock.js:1160
msgid "Stock item has expired"
msgstr ""
-#: templates/js/translated/stock.js:858
+#: templates/js/translated/stock.js:1162
msgid "Stock item will expire soon"
msgstr ""
-#: templates/js/translated/stock.js:862
+#: templates/js/translated/stock.js:1166
msgid "Stock item has been allocated"
msgstr ""
-#: templates/js/translated/stock.js:866
+#: templates/js/translated/stock.js:1170
msgid "Stock item has been installed in another item"
msgstr ""
-#: templates/js/translated/stock.js:873
+#: templates/js/translated/stock.js:1177
msgid "Stock item has been rejected"
msgstr ""
-#: templates/js/translated/stock.js:875
+#: templates/js/translated/stock.js:1179
msgid "Stock item is lost"
msgstr ""
-#: templates/js/translated/stock.js:877
+#: templates/js/translated/stock.js:1181
msgid "Stock item is destroyed"
msgstr ""
-#: templates/js/translated/stock.js:881
-#: templates/js/translated/table_filters.js:161
+#: templates/js/translated/stock.js:1185
+#: templates/js/translated/table_filters.js:183
msgid "Depleted"
msgstr ""
-#: templates/js/translated/stock.js:935
+#: templates/js/translated/stock.js:1235
msgid "Stocktake"
msgstr ""
-#: templates/js/translated/stock.js:1008
+#: templates/js/translated/stock.js:1308
msgid "Supplier part not specified"
msgstr ""
-#: templates/js/translated/stock.js:1046
+#: templates/js/translated/stock.js:1346
msgid "No stock items matching query"
msgstr ""
-#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115
+#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415
msgid "items"
msgstr ""
-#: templates/js/translated/stock.js:1155
+#: templates/js/translated/stock.js:1455
msgid "batches"
msgstr ""
-#: templates/js/translated/stock.js:1182
+#: templates/js/translated/stock.js:1482
msgid "locations"
msgstr ""
-#: templates/js/translated/stock.js:1184
+#: templates/js/translated/stock.js:1484
msgid "Undefined location"
msgstr ""
-#: templates/js/translated/stock.js:1358
+#: templates/js/translated/stock.js:1658
msgid "Set Stock Status"
msgstr ""
-#: templates/js/translated/stock.js:1372
+#: templates/js/translated/stock.js:1672
msgid "Select Status Code"
msgstr ""
-#: templates/js/translated/stock.js:1373
+#: templates/js/translated/stock.js:1673
msgid "Status code must be selected"
msgstr ""
-#: templates/js/translated/stock.js:1512
+#: templates/js/translated/stock.js:1897
msgid "Invalid date"
msgstr ""
-#: templates/js/translated/stock.js:1559
+#: templates/js/translated/stock.js:1944
msgid "Location no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1578
+#: templates/js/translated/stock.js:1963
msgid "Purchase order no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1597
+#: templates/js/translated/stock.js:1982
msgid "Customer no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1615
+#: templates/js/translated/stock.js:2000
msgid "Stock item no longer exists"
msgstr ""
-#: templates/js/translated/stock.js:1638
+#: templates/js/translated/stock.js:2023
msgid "Added"
msgstr ""
-#: templates/js/translated/stock.js:1646
+#: templates/js/translated/stock.js:2031
msgid "Removed"
msgstr ""
-#: templates/js/translated/stock.js:1687
+#: templates/js/translated/stock.js:2072
msgid "Edit tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1688
+#: templates/js/translated/stock.js:2073
msgid "Delete tracking entry"
msgstr ""
-#: templates/js/translated/stock.js:1812
+#: templates/js/translated/stock.js:2124
msgid "No installed items"
msgstr ""
-#: templates/js/translated/stock.js:1835
+#: templates/js/translated/stock.js:2147
msgid "Serial"
msgstr ""
-#: templates/js/translated/stock.js:1863
+#: templates/js/translated/stock.js:2175
msgid "Uninstall Stock Item"
msgstr ""
@@ -8023,254 +8173,264 @@ msgstr ""
msgid "Allow Variant Stock"
msgstr ""
-#: templates/js/translated/table_filters.js:92
-#: templates/js/translated/table_filters.js:156
+#: templates/js/translated/table_filters.js:110
+#: templates/js/translated/table_filters.js:178
msgid "Include sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:93
+#: templates/js/translated/table_filters.js:111
msgid "Include locations"
msgstr ""
-#: templates/js/translated/table_filters.js:103
-#: templates/js/translated/table_filters.js:104
-#: templates/js/translated/table_filters.js:336
+#: templates/js/translated/table_filters.js:121
+#: templates/js/translated/table_filters.js:122
+#: templates/js/translated/table_filters.js:358
msgid "Include subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:114
-#: templates/js/translated/table_filters.js:191
+#: templates/js/translated/table_filters.js:126
+#: templates/js/translated/table_filters.js:393
+msgid "Subscribed"
+msgstr ""
+
+#: templates/js/translated/table_filters.js:136
+#: templates/js/translated/table_filters.js:213
msgid "Is Serialized"
msgstr ""
-#: templates/js/translated/table_filters.js:117
-#: templates/js/translated/table_filters.js:198
+#: templates/js/translated/table_filters.js:139
+#: templates/js/translated/table_filters.js:220
msgid "Serial number GTE"
msgstr ""
-#: templates/js/translated/table_filters.js:118
-#: templates/js/translated/table_filters.js:199
+#: templates/js/translated/table_filters.js:140
+#: templates/js/translated/table_filters.js:221
msgid "Serial number greater than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:121
-#: templates/js/translated/table_filters.js:202
+#: templates/js/translated/table_filters.js:143
+#: templates/js/translated/table_filters.js:224
msgid "Serial number LTE"
msgstr ""
-#: templates/js/translated/table_filters.js:122
-#: templates/js/translated/table_filters.js:203
+#: templates/js/translated/table_filters.js:144
+#: templates/js/translated/table_filters.js:225
msgid "Serial number less than or equal to"
msgstr ""
-#: templates/js/translated/table_filters.js:125
-#: templates/js/translated/table_filters.js:126
-#: templates/js/translated/table_filters.js:194
-#: templates/js/translated/table_filters.js:195
+#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:148
+#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:217
msgid "Serial number"
msgstr ""
-#: templates/js/translated/table_filters.js:130
-#: templates/js/translated/table_filters.js:212
+#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:234
msgid "Batch code"
msgstr ""
-#: templates/js/translated/table_filters.js:141
-#: templates/js/translated/table_filters.js:326
+#: templates/js/translated/table_filters.js:163
+#: templates/js/translated/table_filters.js:348
msgid "Active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:142
+#: templates/js/translated/table_filters.js:164
msgid "Show stock for active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:147
+#: templates/js/translated/table_filters.js:169
msgid "Part is an assembly"
msgstr ""
-#: templates/js/translated/table_filters.js:151
+#: templates/js/translated/table_filters.js:173
msgid "Is allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:152
+#: templates/js/translated/table_filters.js:174
msgid "Item has been allocated"
msgstr ""
-#: templates/js/translated/table_filters.js:157
+#: templates/js/translated/table_filters.js:179
msgid "Include stock in sublocations"
msgstr ""
-#: templates/js/translated/table_filters.js:162
+#: templates/js/translated/table_filters.js:184
msgid "Show stock items which are depleted"
msgstr ""
-#: templates/js/translated/table_filters.js:167
+#: templates/js/translated/table_filters.js:189
msgid "Show items which are in stock"
msgstr ""
-#: templates/js/translated/table_filters.js:171
+#: templates/js/translated/table_filters.js:193
msgid "In Production"
msgstr "正在生产"
-#: templates/js/translated/table_filters.js:172
+#: templates/js/translated/table_filters.js:194
msgid "Show items which are in production"
msgstr "显示正在生产的项目"
-#: templates/js/translated/table_filters.js:176
+#: templates/js/translated/table_filters.js:198
msgid "Include Variants"
msgstr ""
-#: templates/js/translated/table_filters.js:177
+#: templates/js/translated/table_filters.js:199
msgid "Include stock items for variant parts"
msgstr ""
-#: templates/js/translated/table_filters.js:181
+#: templates/js/translated/table_filters.js:203
msgid "Installed"
msgstr ""
-#: templates/js/translated/table_filters.js:182
+#: templates/js/translated/table_filters.js:204
msgid "Show stock items which are installed in another item"
msgstr ""
-#: templates/js/translated/table_filters.js:187
+#: templates/js/translated/table_filters.js:209
msgid "Show items which have been assigned to a customer"
msgstr ""
-#: templates/js/translated/table_filters.js:207
-#: templates/js/translated/table_filters.js:208
+#: templates/js/translated/table_filters.js:229
+#: templates/js/translated/table_filters.js:230
msgid "Stock status"
msgstr ""
-#: templates/js/translated/table_filters.js:216
+#: templates/js/translated/table_filters.js:238
msgid "Has purchase price"
msgstr ""
-#: templates/js/translated/table_filters.js:217
+#: templates/js/translated/table_filters.js:239
msgid "Show stock items which have a purchase price set"
msgstr ""
-#: templates/js/translated/table_filters.js:226
+#: templates/js/translated/table_filters.js:248
msgid "Show stock items which have expired"
msgstr ""
-#: templates/js/translated/table_filters.js:232
+#: templates/js/translated/table_filters.js:254
msgid "Show stock which is close to expiring"
msgstr ""
-#: templates/js/translated/table_filters.js:263
+#: templates/js/translated/table_filters.js:285
msgid "Build status"
msgstr "生产状态"
-#: templates/js/translated/table_filters.js:291
-#: templates/js/translated/table_filters.js:308
+#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:330
msgid "Order status"
msgstr ""
-#: templates/js/translated/table_filters.js:296
-#: templates/js/translated/table_filters.js:313
+#: templates/js/translated/table_filters.js:318
+#: templates/js/translated/table_filters.js:335
msgid "Outstanding"
msgstr ""
-#: templates/js/translated/table_filters.js:337
+#: templates/js/translated/table_filters.js:359
msgid "Include parts in subcategories"
msgstr ""
-#: templates/js/translated/table_filters.js:341
+#: templates/js/translated/table_filters.js:363
msgid "Has IPN"
msgstr ""
-#: templates/js/translated/table_filters.js:342
+#: templates/js/translated/table_filters.js:364
msgid "Part has internal part number"
msgstr "商品有内部编号"
-#: templates/js/translated/table_filters.js:347
+#: templates/js/translated/table_filters.js:369
msgid "Show active parts"
msgstr ""
-#: templates/js/translated/table_filters.js:355
+#: templates/js/translated/table_filters.js:377
msgid "Stock available"
msgstr ""
-#: templates/js/translated/table_filters.js:371
-msgid "Starred"
-msgstr ""
-
-#: templates/js/translated/table_filters.js:383
+#: templates/js/translated/table_filters.js:405
msgid "Purchasable"
msgstr ""
-#: templates/js/translated/tables.js:366
+#: templates/js/translated/tables.js:368
msgid "Loading data"
msgstr ""
-#: templates/js/translated/tables.js:369
+#: templates/js/translated/tables.js:371
msgid "rows per page"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "Showing"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "to"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "of"
msgstr ""
-#: templates/js/translated/tables.js:372
+#: templates/js/translated/tables.js:374
msgid "rows"
msgstr ""
-#: templates/js/translated/tables.js:378
+#: templates/js/translated/tables.js:377 templates/search_form.html:6
+#: templates/search_form.html:7
+msgid "Search"
+msgstr "搜索"
+
+#: templates/js/translated/tables.js:380
msgid "No matching results"
msgstr ""
-#: templates/js/translated/tables.js:381
+#: templates/js/translated/tables.js:383
msgid "Hide/Show pagination"
msgstr ""
-#: templates/js/translated/tables.js:384
+#: templates/js/translated/tables.js:386
msgid "Refresh"
msgstr ""
-#: templates/js/translated/tables.js:387
+#: templates/js/translated/tables.js:389
msgid "Toggle"
msgstr ""
-#: templates/js/translated/tables.js:390
+#: templates/js/translated/tables.js:392
msgid "Columns"
msgstr ""
-#: templates/js/translated/tables.js:393
+#: templates/js/translated/tables.js:395
msgid "All"
msgstr ""
-#: templates/navbar.html:19
-msgid "Toggle navigation"
-msgstr ""
-
-#: templates/navbar.html:39
+#: templates/navbar.html:40
msgid "Buy"
msgstr "采购"
-#: templates/navbar.html:51
+#: templates/navbar.html:52
msgid "Sell"
msgstr "销售"
-#: templates/navbar.html:83 users/models.py:39
+#: templates/navbar.html:86 users/models.py:39
msgid "Admin"
msgstr "管理员"
-#: templates/navbar.html:85
+#: templates/navbar.html:88
msgid "Logout"
msgstr ""
-#: templates/navbar.html:106
+#: templates/navbar.html:90
+msgid "Login"
+msgstr ""
+
+#: templates/navbar.html:111
msgid "About InvenTree"
msgstr ""
+#: templates/navbar_demo.html:5
+msgid "InvenTree demo mode"
+msgstr ""
+
#: templates/qr_code.html:11
msgid "QR data not provided"
msgstr ""
@@ -8283,6 +8443,10 @@ msgstr ""
msgid "Log in again"
msgstr ""
+#: templates/stats.html:9
+msgid "Server"
+msgstr ""
+
#: templates/stats.html:13
msgid "Instance Name"
msgstr ""
@@ -8336,54 +8500,50 @@ msgid "Export Stock Information"
msgstr ""
#: templates/stock_table.html:20
-msgid "New Stock Item"
-msgstr ""
-
-#: templates/stock_table.html:27
msgid "Barcode Actions"
msgstr ""
-#: templates/stock_table.html:43
+#: templates/stock_table.html:36
msgid "Print test reports"
msgstr "打印测试报表"
-#: templates/stock_table.html:50
+#: templates/stock_table.html:43
msgid "Stock Options"
msgstr ""
-#: templates/stock_table.html:55
+#: templates/stock_table.html:48
msgid "Add to selected stock items"
msgstr ""
-#: templates/stock_table.html:56
+#: templates/stock_table.html:49
msgid "Remove from selected stock items"
msgstr ""
-#: templates/stock_table.html:57
+#: templates/stock_table.html:50
msgid "Stocktake selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move selected stock items"
msgstr ""
-#: templates/stock_table.html:58
+#: templates/stock_table.html:51
msgid "Move stock"
msgstr ""
-#: templates/stock_table.html:59
+#: templates/stock_table.html:52
msgid "Order selected items"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change status"
msgstr ""
-#: templates/stock_table.html:60
+#: templates/stock_table.html:53
msgid "Change stock status"
msgstr ""
-#: templates/stock_table.html:63
+#: templates/stock_table.html:56
msgid "Delete selected items"
msgstr ""
@@ -8419,35 +8579,35 @@ msgstr "权限"
msgid "Important dates"
msgstr "重要日期"
-#: users/models.py:182
+#: users/models.py:187
msgid "Permission set"
msgstr "权限设置"
-#: users/models.py:190
+#: users/models.py:195
msgid "Group"
msgstr "群组"
-#: users/models.py:193
+#: users/models.py:198
msgid "View"
msgstr "视图"
-#: users/models.py:193
+#: users/models.py:198
msgid "Permission to view items"
msgstr "查看项目权限"
-#: users/models.py:195
+#: users/models.py:200
msgid "Permission to add items"
msgstr "添加项目权限"
-#: users/models.py:197
+#: users/models.py:202
msgid "Change"
msgstr "更改"
-#: users/models.py:197
+#: users/models.py:202
msgid "Permissions to edit items"
msgstr "编辑项目权限"
-#: users/models.py:199
+#: users/models.py:204
msgid "Permission to delete items"
msgstr "删除项目权限"
diff --git a/InvenTree/order/api.py b/InvenTree/order/api.py
index 037224a855..2ee9a7694d 100644
--- a/InvenTree/order/api.py
+++ b/InvenTree/order/api.py
@@ -42,7 +42,7 @@ class POList(generics.ListCreateAPIView):
"""
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
-
+
item = serializer.save()
item.created_by = request.user
item.save()
@@ -397,7 +397,7 @@ class SOList(generics.ListCreateAPIView):
"""
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
-
+
item = serializer.save()
item.created_by = request.user
item.save()
diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py
index c88943f9ea..f87e337b35 100644
--- a/InvenTree/order/models.py
+++ b/InvenTree/order/models.py
@@ -743,7 +743,7 @@ class PurchaseOrderLineItem(OrderLineItem):
def get_base_part(self):
"""
Return the base part.Part object for the line item
-
+
Note: Returns None if the SupplierPart is not set!
"""
if self.part is None:
diff --git a/InvenTree/order/serializers.py b/InvenTree/order/serializers.py
index 9fe0945168..42e08fe9cb 100644
--- a/InvenTree/order/serializers.py
+++ b/InvenTree/order/serializers.py
@@ -551,10 +551,10 @@ class SOLineItemSerializer(InvenTreeModelSerializer):
allocations = SalesOrderAllocationSerializer(many=True, read_only=True, location_detail=True)
quantity = InvenTreeDecimalField()
-
+
allocated = serializers.FloatField(source='allocated_quantity', read_only=True)
fulfilled = serializers.FloatField(source='fulfilled_quantity', read_only=True)
-
+
sale_price = InvenTreeMoneySerializer(
allow_null=True
)
diff --git a/InvenTree/order/templates/order/order_wizard/po_upload.html b/InvenTree/order/templates/order/order_wizard/po_upload.html
index 28d0360757..5c680e509c 100644
--- a/InvenTree/order/templates/order/order_wizard/po_upload.html
+++ b/InvenTree/order/templates/order/order_wizard/po_upload.html
@@ -5,7 +5,8 @@
{% block sidebar %}
{% url "po-detail" order.id as url %}
-{% include "sidebar_item.html" with url=url text="Return to Orders" icon="fa-undo" %}
+{% trans "Return to Orders" as text %}
+{% include "sidebar_item.html" with url=url text=text icon="fa-undo" %}
{% endblock %}
{% block page_content %}
diff --git a/InvenTree/order/templates/order/po_sidebar.html b/InvenTree/order/templates/order/po_sidebar.html
index d5b7727e5c..298c945d41 100644
--- a/InvenTree/order/templates/order/po_sidebar.html
+++ b/InvenTree/order/templates/order/po_sidebar.html
@@ -2,7 +2,11 @@
{% load static %}
{% load inventree_extras %}
-{% include "sidebar_item.html" with label='order-items' text="Line Items" icon="fa-list-ol" %}
-{% include "sidebar_item.html" with label='received-items' text="Received Stock" icon="fa-sign-in-alt" %}
-{% include "sidebar_item.html" with label='order-attachments' text="Attachments" icon="fa-paperclip" %}
-{% include "sidebar_item.html" with label='order-notes' text="Notes" icon="fa-clipboard" %}
\ No newline at end of file
+{% trans "Line Items" as text %}
+{% include "sidebar_item.html" with label='order-items' text=text icon="fa-list-ol" %}
+{% trans "Received Stock" as text %}
+{% include "sidebar_item.html" with label='received-items' text=text icon="fa-sign-in-alt" %}
+{% trans "Attachments" as text %}
+{% include "sidebar_item.html" with label='order-attachments' text=text icon="fa-paperclip" %}
+{% trans "Notes" as text %}
+{% include "sidebar_item.html" with label='order-notes' text=text icon="fa-clipboard" %}
\ No newline at end of file
diff --git a/InvenTree/order/templates/order/so_sidebar.html b/InvenTree/order/templates/order/so_sidebar.html
index 6ee68949ee..c18c766e6c 100644
--- a/InvenTree/order/templates/order/so_sidebar.html
+++ b/InvenTree/order/templates/order/so_sidebar.html
@@ -2,8 +2,13 @@
{% load static %}
{% load inventree_extras %}
-{% include "sidebar_item.html" with label='order-items' text="Line Items" icon="fa-list-ol" %}
-{% include "sidebar_item.html" with label='order-shipments' text="Shipments" icon="fa-truck" %}
-{% include "sidebar_item.html" with label='order-builds' text="Build Orders" icon="fa-tools" %}
-{% include "sidebar_item.html" with label='order-attachments' text="Attachments" icon="fa-paperclip" %}
-{% include "sidebar_item.html" with label='order-notes' text="Notes" icon="fa-clipboard" %}
+{% trans "Line Items" as text %}
+{% include "sidebar_item.html" with label='order-items' text=text icon="fa-list-ol" %}
+{% trans "Shipments" as text %}
+{% include "sidebar_item.html" with label='order-shipments' text=text icon="fa-truck" %}
+{% trans "Build Orders" as text %}
+{% include "sidebar_item.html" with label='order-builds' text=text icon="fa-tools" %}
+{% trans "Attachments" as text %}
+{% include "sidebar_item.html" with label='order-attachments' text=text icon="fa-paperclip" %}
+{% trans "Notes" as text %}
+{% include "sidebar_item.html" with label='order-notes' text=text icon="fa-clipboard" %}
diff --git a/InvenTree/order/test_api.py b/InvenTree/order/test_api.py
index 143a51bdb1..c8cb30b0b7 100644
--- a/InvenTree/order/test_api.py
+++ b/InvenTree/order/test_api.py
@@ -229,7 +229,7 @@ class PurchaseOrderReceiveTest(OrderTest):
def setUp(self):
super().setUp()
-
+
self.assignRole('purchase_order.add')
self.url = reverse('api-po-receive', kwargs={'pk': 1})
diff --git a/InvenTree/order/views.py b/InvenTree/order/views.py
index 08741faa2e..8aea60f694 100644
--- a/InvenTree/order/views.py
+++ b/InvenTree/order/views.py
@@ -406,7 +406,7 @@ class PurchaseOrderUpload(FileManagementFormView):
def done(self, form_list, **kwargs):
""" Once all the data is in, process it to add PurchaseOrderLineItem instances to the order """
-
+
order = self.get_order()
items = self.get_clean_items()
@@ -432,7 +432,7 @@ class PurchaseOrderUpload(FileManagementFormView):
except IntegrityError:
# PurchaseOrderLineItem already exists
pass
-
+
return HttpResponseRedirect(reverse('po-detail', kwargs={'pk': self.kwargs['pk']}))
@@ -449,7 +449,7 @@ class SalesOrderExport(AjaxView):
role_required = 'sales_order.view'
def get(self, request, *args, **kwargs):
-
+
order = get_object_or_404(SalesOrder, pk=self.kwargs.get('pk', None))
export_format = request.GET.get('format', 'csv')
diff --git a/InvenTree/part/admin.py b/InvenTree/part/admin.py
index 90543d429d..63f48a4e07 100644
--- a/InvenTree/part/admin.py
+++ b/InvenTree/part/admin.py
@@ -205,7 +205,7 @@ class BomItemResource(ModelResource):
# If we are not generating an "import" template,
# just return the complete list of fields
- if not self.is_importing:
+ if not getattr(self, 'is_importing', False):
return fields
# Otherwise, remove some fields we are not interested in
diff --git a/InvenTree/part/api.py b/InvenTree/part/api.py
index eeb8ec1255..00b5dfa7de 100644
--- a/InvenTree/part/api.py
+++ b/InvenTree/part/api.py
@@ -26,7 +26,7 @@ from djmoney.contrib.exchange.exceptions import MissingRate
from decimal import Decimal, InvalidOperation
-from .models import Part, PartCategory
+from .models import Part, PartCategory, PartRelated
from .models import BomItem, BomItemSubstitute
from .models import PartParameter, PartParameterTemplate
from .models import PartAttachment, PartTestTemplate
@@ -169,7 +169,7 @@ class CategoryDetail(generics.RetrieveUpdateDestroyAPIView):
"""
API endpoint for detail view of a single PartCategory object
"""
-
+
serializer_class = part_serializers.CategorySerializer
queryset = PartCategory.objects.all()
@@ -222,7 +222,7 @@ class CategoryParameterList(generics.ListAPIView):
if category is not None:
try:
-
+
category = PartCategory.objects.get(pk=category)
fetch_parent = str2bool(params.get('fetch_parent', True))
@@ -734,7 +734,7 @@ class PartList(generics.ListCreateAPIView):
raise ValidationError({
'initial_stock_quantity': [_('Must be a valid quantity')],
})
-
+
initial_stock_location = request.data.get('initial_stock_location', None)
try:
@@ -850,7 +850,7 @@ class PartList(generics.ListCreateAPIView):
id_values.append(val)
except ValueError:
pass
-
+
queryset = queryset.exclude(pk__in=id_values)
# Exclude part variant tree?
@@ -901,6 +901,40 @@ class PartList(generics.ListCreateAPIView):
queryset = queryset.filter(pk__in=pks)
+ # Filter by 'related' parts?
+ related = params.get('related', None)
+ exclude_related = params.get('exclude_related', None)
+
+ if related is not None or exclude_related is not None:
+ try:
+ pk = related if related is not None else exclude_related
+ pk = int(pk)
+
+ related_part = Part.objects.get(pk=pk)
+
+ part_ids = set()
+
+ # Return any relationship which points to the part in question
+ relation_filter = Q(part_1=related_part) | Q(part_2=related_part)
+
+ for relation in PartRelated.objects.filter(relation_filter):
+
+ if relation.part_1.pk != pk:
+ part_ids.add(relation.part_1.pk)
+
+ if relation.part_2.pk != pk:
+ part_ids.add(relation.part_2.pk)
+
+ if related is not None:
+ # Only return related results
+ queryset = queryset.filter(pk__in=[pk for pk in part_ids])
+ elif exclude_related is not None:
+ # Exclude related results
+ queryset = queryset.exclude(pk__in=[pk for pk in part_ids])
+
+ except (ValueError, Part.DoesNotExist):
+ pass
+
# Filter by 'starred' parts?
starred = params.get('starred', None)
@@ -1017,6 +1051,44 @@ class PartList(generics.ListCreateAPIView):
]
+class PartRelatedList(generics.ListCreateAPIView):
+ """
+ API endpoint for accessing a list of PartRelated objects
+ """
+
+ queryset = PartRelated.objects.all()
+ serializer_class = part_serializers.PartRelationSerializer
+
+ def filter_queryset(self, queryset):
+
+ queryset = super().filter_queryset(queryset)
+
+ params = self.request.query_params
+
+ # Add a filter for "part" - we can filter either part_1 or part_2
+ part = params.get('part', None)
+
+ if part is not None:
+ try:
+ part = Part.objects.get(pk=part)
+
+ queryset = queryset.filter(Q(part_1=part) | Q(part_2=part))
+
+ except (ValueError, Part.DoesNotExist):
+ pass
+
+ return queryset
+
+
+class PartRelatedDetail(generics.RetrieveUpdateDestroyAPIView):
+ """
+ API endpoint for accessing detail view of a PartRelated object
+ """
+
+ queryset = PartRelated.objects.all()
+ serializer_class = part_serializers.PartRelationSerializer
+
+
class PartParameterTemplateList(generics.ListCreateAPIView):
""" API endpoint for accessing a list of PartParameterTemplate objects.
@@ -1081,24 +1153,6 @@ class BomFilter(rest_filters.FilterSet):
inherited = rest_filters.BooleanFilter(label='BOM line is inherited')
allow_variants = rest_filters.BooleanFilter(label='Variants are allowed')
- validated = rest_filters.BooleanFilter(label='BOM line has been validated', method='filter_validated')
-
- def filter_validated(self, queryset, name, value):
-
- # Work out which lines have actually been validated
- pks = []
-
- for bom_item in queryset.all():
- if bom_item.is_line_valid():
- pks.append(bom_item.pk)
-
- if str2bool(value):
- queryset = queryset.filter(pk__in=pks)
- else:
- queryset = queryset.exclude(pk__in=pks)
-
- return queryset
-
# Filters for linked 'part'
part_active = rest_filters.BooleanFilter(label='Master part is active', field_name='part__active')
part_trackable = rest_filters.BooleanFilter(label='Master part is trackable', field_name='part__trackable')
@@ -1107,6 +1161,30 @@ class BomFilter(rest_filters.FilterSet):
sub_part_trackable = rest_filters.BooleanFilter(label='Sub part is trackable', field_name='sub_part__trackable')
sub_part_assembly = rest_filters.BooleanFilter(label='Sub part is an assembly', field_name='sub_part__assembly')
+ validated = rest_filters.BooleanFilter(label='BOM line has been validated', method='filter_validated')
+
+ def filter_validated(self, queryset, name, value):
+
+ # Work out which lines have actually been validated
+ pks = []
+
+ value = str2bool(value)
+
+ # Shortcut for quicker filtering - BomItem with empty 'checksum' values are not validated
+ if value:
+ queryset = queryset.exclude(checksum=None).exclude(checksum='')
+
+ for bom_item in queryset.all():
+ if bom_item.is_line_valid:
+ pks.append(bom_item.pk)
+
+ if value:
+ queryset = queryset.filter(pk__in=pks)
+ else:
+ queryset = queryset.exclude(pk__in=pks)
+
+ return queryset
+
class BomList(generics.ListCreateAPIView):
"""
@@ -1257,7 +1335,7 @@ class BomList(generics.ListCreateAPIView):
queryset = self.annotate_pricing(queryset)
return queryset
-
+
def include_pricing(self):
"""
Determine if pricing information should be included in the response
@@ -1291,7 +1369,7 @@ class BomList(generics.ListCreateAPIView):
# Get default currency from settings
default_currency = InvenTreeSetting.get_setting('INVENTREE_DEFAULT_CURRENCY')
-
+
if price:
if currency and default_currency:
try:
@@ -1381,7 +1459,7 @@ class BomItemSubstituteList(generics.ListCreateAPIView):
serializer_class = part_serializers.BomItemSubstituteSerializer
queryset = BomItemSubstitute.objects.all()
-
+
filter_backends = [
DjangoFilterBackend,
filters.SearchFilter,
@@ -1435,6 +1513,12 @@ part_api_urls = [
url(r'^.*$', PartInternalPriceList.as_view(), name='api-part-internal-price-list'),
])),
+ # Base URL for PartRelated API endpoints
+ url(r'^related/', include([
+ url(r'^(?P\d+)/', PartRelatedDetail.as_view(), name='api-part-related-detail'),
+ url(r'^.*$', PartRelatedList.as_view(), name='api-part-related-list'),
+ ])),
+
# Base URL for PartParameter API endpoints
url(r'^parameter/', include([
url(r'^template/$', PartParameterTemplateList.as_view(), name='api-part-parameter-template-list'),
diff --git a/InvenTree/part/bom.py b/InvenTree/part/bom.py
index fd31aba339..71bcf4889b 100644
--- a/InvenTree/part/bom.py
+++ b/InvenTree/part/bom.py
@@ -59,7 +59,7 @@ def ExportBom(part, fmt='csv', cascade=False, max_levels=None, parameter_data=Fa
uids = []
- def add_items(items, level, cascade):
+ def add_items(items, level, cascade=True):
# Add items at a given layer
for item in items:
@@ -172,7 +172,7 @@ def ExportBom(part, fmt='csv', cascade=False, max_levels=None, parameter_data=Fa
# Filter manufacturer parts
manufacturer_parts = ManufacturerPart.objects.filter(part__pk=b_part.pk).prefetch_related('supplier_parts')
-
+
for mp_idx, mp_part in enumerate(manufacturer_parts):
# Extract the "name" field of the Manufacturer (Company)
@@ -190,7 +190,7 @@ def ExportBom(part, fmt='csv', cascade=False, max_levels=None, parameter_data=Fa
# Generate a column name for this manufacturer
k_man = f'{_("Manufacturer")}_{mp_idx}'
k_mpn = f'{_("MPN")}_{mp_idx}'
-
+
try:
manufacturer_cols[k_man].update({bom_idx: manufacturer_name})
manufacturer_cols[k_mpn].update({bom_idx: manufacturer_mpn})
@@ -200,7 +200,7 @@ def ExportBom(part, fmt='csv', cascade=False, max_levels=None, parameter_data=Fa
# We wish to include supplier data for this manufacturer part
if supplier_data:
-
+
for sp_idx, sp_part in enumerate(mp_part.supplier_parts.all()):
supplier_parts_used.add(sp_part)
diff --git a/InvenTree/part/forms.py b/InvenTree/part/forms.py
index ddcb78ac2a..609acec917 100644
--- a/InvenTree/part/forms.py
+++ b/InvenTree/part/forms.py
@@ -17,7 +17,7 @@ from InvenTree.fields import RoundingDecimalFormField
import common.models
from common.forms import MatchItemForm
-from .models import Part, PartCategory, PartRelated
+from .models import Part, PartCategory
from .models import PartParameterTemplate
from .models import PartCategoryParameterTemplate
from .models import PartSellPriceBreak, PartInternalPriceBreak
@@ -157,20 +157,6 @@ class BomMatchItemForm(MatchItemForm):
return super().get_special_field(col_guess, row, file_manager)
-class CreatePartRelatedForm(HelperForm):
- """ Form for creating a PartRelated object """
-
- class Meta:
- model = PartRelated
- fields = [
- 'part_1',
- 'part_2',
- ]
- labels = {
- 'part_2': _('Related Part'),
- }
-
-
class SetPartCategoryForm(forms.Form):
""" Form for setting the category of multiple Part objects """
diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py
index cec21becc2..5c6c07d9d8 100644
--- a/InvenTree/part/models.py
+++ b/InvenTree/part/models.py
@@ -1587,7 +1587,7 @@ class Part(MPTTModel):
# Exclude any parts that this part is used *in* (to prevent recursive BOMs)
used_in = self.get_used_in().all()
- parts = parts.exclude(id__in=[item.part.id for item in used_in])
+ parts = parts.exclude(id__in=[part.id for part in used_in])
return parts
@@ -2118,7 +2118,7 @@ class Part(MPTTModel):
"""
Returns True if the total stock for this part is less than the minimum stock level
"""
-
+
return self.get_stock_count() < self.minimum_stock
@@ -2155,7 +2155,7 @@ class PartSellPriceBreak(common.models.PriceBreak):
"""
Represents a price break for selling this part
"""
-
+
@staticmethod
def get_api_url():
return reverse('api-part-sale-price-list')
diff --git a/InvenTree/part/serializers.py b/InvenTree/part/serializers.py
index 9deece4863..388faf1ca2 100644
--- a/InvenTree/part/serializers.py
+++ b/InvenTree/part/serializers.py
@@ -25,7 +25,7 @@ from InvenTree.status_codes import BuildStatus, PurchaseOrderStatus
from stock.models import StockItem
from .models import (BomItem, BomItemSubstitute,
- Part, PartAttachment, PartCategory,
+ Part, PartAttachment, PartCategory, PartRelated,
PartParameter, PartParameterTemplate, PartSellPriceBreak,
PartStar, PartTestTemplate, PartCategoryParameterTemplate,
PartInternalPriceBreak)
@@ -388,6 +388,25 @@ class PartSerializer(InvenTreeModelSerializer):
]
+class PartRelationSerializer(InvenTreeModelSerializer):
+ """
+ Serializer for a PartRelated model
+ """
+
+ part_1_detail = PartSerializer(source='part_1', read_only=True, many=False)
+ part_2_detail = PartSerializer(source='part_2', read_only=True, many=False)
+
+ class Meta:
+ model = PartRelated
+ fields = [
+ 'pk',
+ 'part_1',
+ 'part_1_detail',
+ 'part_2',
+ 'part_2_detail',
+ ]
+
+
class PartStarSerializer(InvenTreeModelSerializer):
""" Serializer for a PartStar object """
@@ -446,9 +465,9 @@ class BomItemSerializer(InvenTreeModelSerializer):
purchase_price_min = MoneyField(max_digits=10, decimal_places=6, read_only=True)
purchase_price_max = MoneyField(max_digits=10, decimal_places=6, read_only=True)
-
+
purchase_price_avg = serializers.SerializerMethodField()
-
+
purchase_price_range = serializers.SerializerMethodField()
def __init__(self, *args, **kwargs):
@@ -520,7 +539,7 @@ class BomItemSerializer(InvenTreeModelSerializer):
def get_purchase_price_avg(self, obj):
""" Return purchase price average """
-
+
try:
purchase_price_avg = obj.purchase_price_avg
except AttributeError:
diff --git a/InvenTree/part/tasks.py b/InvenTree/part/tasks.py
index 0cd9cf09a7..a7c24b385b 100644
--- a/InvenTree/part/tasks.py
+++ b/InvenTree/part/tasks.py
@@ -62,7 +62,7 @@ def notify_low_stock(part: part.models.Part):
def notify_low_stock_if_required(part: part.models.Part):
"""
Check if the stock quantity has fallen below the minimum threshold of part.
-
+
If true, notify the users who have subscribed to the part
"""
diff --git a/InvenTree/part/templates/part/bom_upload/upload_file.html b/InvenTree/part/templates/part/bom_upload/upload_file.html
index ab3b245010..6775176ede 100644
--- a/InvenTree/part/templates/part/bom_upload/upload_file.html
+++ b/InvenTree/part/templates/part/bom_upload/upload_file.html
@@ -5,7 +5,8 @@
{% block sidebar %}
{% url "part-detail" part.id as url %}
-{% include "sidebar_link.html" with url=url text="Return to BOM" icon="fa-undo" %}
+{% trans "Return to BOM" as text %}
+{% include "sidebar_link.html" with url=url text=text icon="fa-undo" %}
{% endblock %}
{% block heading %}
diff --git a/InvenTree/part/templates/part/category_sidebar.html b/InvenTree/part/templates/part/category_sidebar.html
index 37c5acc73c..3d945d0433 100644
--- a/InvenTree/part/templates/part/category_sidebar.html
+++ b/InvenTree/part/templates/part/category_sidebar.html
@@ -4,12 +4,16 @@
{% settings_value 'PART_SHOW_IMPORT' as show_import %}
-{% include "sidebar_item.html" with label="subcategories" text="Subcategories" icon="fa-sitemap" %}
-{% include "sidebar_item.html" with label="parts" text="Parts" icon="fa-shapes" %}
+{% trans "Subcategories" as text %}
+{% include "sidebar_item.html" with label="subcategories" text=text icon="fa-sitemap" %}
+{% trans "Parts" as text %}
+{% include "sidebar_item.html" with label="parts" text=text icon="fa-shapes" %}
{% if show_import and user.is_staff and roles.part.add %}
{% url "part-import" as url %}
-{% include "sidebar_link.html" with url=url text="Import Parts" icon="fa-file-upload" %}
+{% trans "Import Parts" as text %}
+{% include "sidebar_link.html" with url=url text=text icon="fa-file-upload" %}
{% endif %}
{% if category %}
-{% include "sidebar_item.html" with label="parameters" text="Parameters" icon="fa-tasks" %}
+{% trans "Parameters" as text %}
+{% include "sidebar_item.html" with label="parameters" text=text icon="fa-tasks" %}
{% endif %}
\ No newline at end of file
diff --git a/InvenTree/part/templates/part/detail.html b/InvenTree/part/templates/part/detail.html
index 0d05665f7d..f8a2c4ba01 100644
--- a/InvenTree/part/templates/part/detail.html
+++ b/InvenTree/part/templates/part/detail.html
@@ -329,34 +329,8 @@
{% include "filter_list.html" with id="related" %}
-
-
+
+
@@ -771,15 +745,32 @@
// Load the "related parts" tab
onPanelLoad("related-parts", function() {
- $('#table-related-part').inventreeTable({
- });
+
+ loadRelatedPartsTable(
+ "#related-parts-table",
+ {{ part.pk }}
+ );
$("#add-related-part").click(function() {
- launchModalForm("{% url 'part-related-create' %}", {
- data: {
- part: {{ part.id }},
+
+ constructForm('{% url "api-part-related-list" %}', {
+ method: 'POST',
+ fields: {
+ part_1: {
+ hidden: true,
+ value: {{ part.pk }},
+ },
+ part_2: {
+ label: '{% trans "Related Part" %}',
+ filters: {
+ exclude_related: {{ part.pk }},
+ }
+ }
},
- reload: true,
+ title: '{% trans "Add Related Part" %}',
+ onSuccess: function() {
+ $('#related-parts-table').bootstrapTable('refresh');
+ }
});
});
diff --git a/InvenTree/part/templates/part/import_wizard/part_upload.html b/InvenTree/part/templates/part/import_wizard/part_upload.html
index 1f69a3b7be..666afad1cb 100644
--- a/InvenTree/part/templates/part/import_wizard/part_upload.html
+++ b/InvenTree/part/templates/part/import_wizard/part_upload.html
@@ -5,7 +5,8 @@
{% block sidebar %}
{% url 'part-index' as url %}
-{% include "sidebar_link.html" with url=url text="Return to Parts" icon="fa-undo" %}
+{% trans "Return to Parts" as text %}
+{% include "sidebar_link.html" with url=url text=text icon="fa-undo" %}
{% endblock %}
{% block content %}
diff --git a/InvenTree/part/templates/part/part_sidebar.html b/InvenTree/part/templates/part/part_sidebar.html
index 9a918d17d7..c590c51c37 100644
--- a/InvenTree/part/templates/part/part_sidebar.html
+++ b/InvenTree/part/templates/part/part_sidebar.html
@@ -5,34 +5,49 @@
{% settings_value "PART_INTERNAL_PRICE" as show_internal_price %}
{% settings_value 'PART_SHOW_RELATED' as show_related %}
-{% include "sidebar_item.html" with label="part-details" text="Details" icon="fa-shapes" %}
-{% include "sidebar_item.html" with label="part-parameters" text="Parameters" icon="fa-th-list" %}
+{% trans "Details" as text %}
+{% include "sidebar_item.html" with label="part-details" text=text icon="fa-shapes" %}
+{% trans "Parameters" as text %}
+{% include "sidebar_item.html" with label="part-parameters" text=text icon="fa-th-list" %}
{% if part.is_template %}
-{% include "sidebar_item.html" with label="variants" text="Variants" icon="fa-shapes" %}
+{% trans "Variants" as text %}
+{% include "sidebar_item.html" with label="variants" text=text icon="fa-shapes" %}
{% endif %}
-{% include "sidebar_item.html" with label="part-stock" text="Stock" icon="fa-boxes" %}
+{% trans "Stock" as text %}
+{% include "sidebar_item.html" with label="part-stock" text=text icon="fa-boxes" %}
{% if part.assembly %}
-{% include "sidebar_item.html" with label="bom" text="Bill of Materials" icon="fa-list" %}
+{% trans "Bill of Materials" as text %}
+{% include "sidebar_item.html" with label="bom" text=text icon="fa-list" %}
{% if roles.build.view %}
-{% include "sidebar_item.html" with label="build-orders" text="Build Orders" icon="fa-tools" %}
+{% trans "Build Orders" as text %}
+{% include "sidebar_item.html" with label="build-orders" text=text icon="fa-tools" %}
{% endif %}
{% endif %}
{% if part.component %}
-{% include "sidebar_item.html" with label="used-in" text="Used In" icon="fa-layer-group" %}
+{% trans "Used In" as text %}
+{% include "sidebar_item.html" with label="used-in" text=text icon="fa-layer-group" %}
{% endif %}
-{% include "sidebar_item.html" with label="pricing" text="Pricing" icon="fa-dollar-sign" %}
+{% trans "Pricing" as text %}
+{% include "sidebar_item.html" with label="pricing" text=text icon="fa-dollar-sign" %}
{% if part.purchaseable and roles.purchase_order.view %}
-{% include "sidebar_item.html" with label="suppliers" text="Suppliers" icon="fa-building" %}
-{% include "sidebar_item.html" with label="purchase-orders" text="Purchase Orders" icon="fa-shopping-cart" %}
+{% trans "Suppliers" as text %}
+{% include "sidebar_item.html" with label="suppliers" text=text icon="fa-building" %}
+{% trans "Purchase Orders" as text %}
+{% include "sidebar_item.html" with label="purchase-orders" text=text icon="fa-shopping-cart" %}
{% endif %}
{% if part.salable and roles.sales_order.view %}
-{% include "sidebar_item.html" with label="sales-orders" text="Sales Orders" icon="fa-truck" %}
+{% trans "Sales Orders" as text %}
+{% include "sidebar_item.html" with label="sales-orders" text=text icon="fa-truck" %}
{% endif %}
{% if part.trackable %}
-{% include "sidebar_item.html" with label="test-templates" text="Test Templates" icon="fa-vial" %}
+{% trans "Test Templates" as text %}
+{% include "sidebar_item.html" with label="test-templates" text=text icon="fa-vial" %}
{% endif %}
{% if show_related %}
-{% include "sidebar_item.html" with label="related-parts" text="Related Parts" icon="fa-random" %}
+{% trans "Related Parts" as text %}
+{% include "sidebar_item.html" with label="related-parts" text=text icon="fa-random" %}
{% endif %}
-{% include "sidebar_item.html" with label="part-attachments" text="Attachments" icon="fa-paperclip" %}
-{% include "sidebar_item.html" with label="part-notes" text="Notes" icon="fa-clipboard" %}
+{% trans "Attachments" as text %}
+{% include "sidebar_item.html" with label="part-attachments" text=text icon="fa-paperclip" %}
+{% trans "Notes" as text %}
+{% include "sidebar_item.html" with label="part-notes" text=text icon="fa-clipboard" %}
diff --git a/InvenTree/part/templatetags/inventree_extras.py b/InvenTree/part/templatetags/inventree_extras.py
index e31fb9e398..9dc09535fa 100644
--- a/InvenTree/part/templatetags/inventree_extras.py
+++ b/InvenTree/part/templatetags/inventree_extras.py
@@ -236,7 +236,7 @@ def settings_value(key, *args, **kwargs):
if 'user' in kwargs:
return InvenTreeUserSetting.get_setting(key, user=kwargs['user'])
-
+
return InvenTreeSetting.get_setting(key)
@@ -384,7 +384,7 @@ def keyvalue(dict, key):
def call_method(obj, method_name, *args):
"""
enables calling model methods / functions from templates with arguments
-
+
usage:
{% call_method model_object 'fnc_name' argument1 %}
"""
diff --git a/InvenTree/part/test_api.py b/InvenTree/part/test_api.py
index b16de1b9d7..9704734234 100644
--- a/InvenTree/part/test_api.py
+++ b/InvenTree/part/test_api.py
@@ -542,7 +542,7 @@ class PartAPITest(InvenTreeAPITestCase):
# Check that there is a new manufacturer part *and* a new supplier part
self.assertEqual(new_part.supplier_parts.count(), 1)
self.assertEqual(new_part.manufacturer_parts.count(), 1)
-
+
def test_strange_chars(self):
"""
Test that non-standard ASCII chars are accepted
@@ -911,7 +911,7 @@ class BomItemTest(InvenTreeAPITestCase):
# How many BOM items currently exist in the database?
n = BomItem.objects.count()
-
+
url = reverse('api-bom-list')
response = self.get(url, expected_code=200)
self.assertEqual(len(response.data), n)
@@ -925,7 +925,46 @@ class BomItemTest(InvenTreeAPITestCase):
expected_code=200
)
- print("results:", len(response.data))
+ # Filter by "validated"
+ response = self.get(
+ url,
+ data={
+ 'validated': True,
+ },
+ expected_code=200,
+ )
+
+ # Should be zero validated results
+ self.assertEqual(len(response.data), 0)
+
+ # Now filter by "not validated"
+ response = self.get(
+ url,
+ data={
+ 'validated': False,
+ },
+ expected_code=200
+ )
+
+ # There should be at least one non-validated item
+ self.assertTrue(len(response.data) > 0)
+
+ # Now, let's validate an item
+ bom_item = BomItem.objects.first()
+
+ bom_item.validate_hash()
+
+ response = self.get(
+ url,
+ data={
+ 'validated': True,
+ },
+ expected_code=200
+ )
+
+ # Check that the expected response is returned
+ self.assertEqual(len(response.data), 1)
+ self.assertEqual(response.data[0]['pk'], bom_item.pk)
def test_get_bom_detail(self):
"""
@@ -962,7 +1001,7 @@ class BomItemTest(InvenTreeAPITestCase):
}
self.post(url, data, expected_code=201)
-
+
# Now try to create a BomItem which references itself
data['part'] = 100
data['sub_part'] = 100
@@ -1003,7 +1042,7 @@ class BomItemTest(InvenTreeAPITestCase):
# Now we will create some variant parts and stock
for ii in range(5):
-
+
# Create a variant part!
variant = Part.objects.create(
name=f"Variant_{ii}",
diff --git a/InvenTree/part/test_bom_item.py b/InvenTree/part/test_bom_item.py
index cd3c77845c..5ce75d3657 100644
--- a/InvenTree/part/test_bom_item.py
+++ b/InvenTree/part/test_bom_item.py
@@ -153,7 +153,7 @@ class BomItemTest(TestCase):
subs = []
for ii in range(5):
-
+
# Create a new part
sub_part = Part.objects.create(
name=f"Orphan {ii}",
@@ -181,7 +181,7 @@ class BomItemTest(TestCase):
# There should be now 5 substitute parts available
self.assertEqual(bom_item.substitutes.count(), 5)
-
+
# Try to create a substitute which points to the same sub-part (should fail)
with self.assertRaises(django_exceptions.ValidationError):
BomItemSubstitute.objects.create(
diff --git a/InvenTree/part/test_part.py b/InvenTree/part/test_part.py
index 755bd45cea..6397b9162f 100644
--- a/InvenTree/part/test_part.py
+++ b/InvenTree/part/test_part.py
@@ -370,7 +370,7 @@ class PartSubscriptionTests(TestCase):
# electronics / IC / MCU
self.category = PartCategory.objects.get(pk=4)
-
+
self.part = Part.objects.create(
category=self.category,
name='STM32F103',
@@ -382,7 +382,7 @@ class PartSubscriptionTests(TestCase):
"""
Test basic subscription against a part
"""
-
+
# First check that the user is *not* subscribed to the part
self.assertFalse(self.part.is_starred_by(self.user))
@@ -450,7 +450,7 @@ class PartSubscriptionTests(TestCase):
"""
Check that a parent category can be subscribed to
"""
-
+
# Top-level "electronics" category
cat = PartCategory.objects.get(pk=1)
diff --git a/InvenTree/part/test_views.py b/InvenTree/part/test_views.py
index 2995d45811..5b6c460e1b 100644
--- a/InvenTree/part/test_views.py
+++ b/InvenTree/part/test_views.py
@@ -5,7 +5,7 @@ from django.urls import reverse
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
-from .models import Part, PartRelated
+from .models import Part
class PartViewTestCase(TestCase):
@@ -145,36 +145,6 @@ class PartDetailTest(PartViewTestCase):
self.assertIn('streaming_content', dir(response))
-class PartRelatedTests(PartViewTestCase):
-
- def test_valid_create(self):
- """ test creation of a related part """
-
- # Test GET view
- response = self.client.get(reverse('part-related-create'), {'part': 1},
- HTTP_X_REQUESTED_WITH='XMLHttpRequest')
- self.assertEqual(response.status_code, 200)
-
- # Test POST view with valid form data
- response = self.client.post(reverse('part-related-create'), {'part_1': 1, 'part_2': 2},
- HTTP_X_REQUESTED_WITH='XMLHttpRequest')
- self.assertContains(response, '"form_valid": true', status_code=200)
-
- # Try to create the same relationship with part_1 and part_2 pks reversed
- response = self.client.post(reverse('part-related-create'), {'part_1': 2, 'part_2': 1},
- HTTP_X_REQUESTED_WITH='XMLHttpRequest')
- self.assertContains(response, '"form_valid": false', status_code=200)
-
- # Try to create part related to itself
- response = self.client.post(reverse('part-related-create'), {'part_1': 1, 'part_2': 1},
- HTTP_X_REQUESTED_WITH='XMLHttpRequest')
- self.assertContains(response, '"form_valid": false', status_code=200)
-
- # Check final count
- n = PartRelated.objects.all().count()
- self.assertEqual(n, 1)
-
-
class PartQRTest(PartViewTestCase):
""" Tests for the Part QR Code AJAX view """
diff --git a/InvenTree/part/urls.py b/InvenTree/part/urls.py
index 13fc6f7c16..e5907e15e2 100644
--- a/InvenTree/part/urls.py
+++ b/InvenTree/part/urls.py
@@ -12,10 +12,6 @@ from django.conf.urls import url, include
from . import views
-part_related_urls = [
- url(r'^new/?', views.PartRelatedCreate.as_view(), name='part-related-create'),
- url(r'^(?P\d+)/delete/?', views.PartRelatedDelete.as_view(), name='part-related-delete'),
-]
sale_price_break_urls = [
url(r'^new/', views.PartSalePriceBreakCreate.as_view(), name='sale-price-break-create'),
@@ -40,7 +36,7 @@ part_detail_urls = [
url(r'^bom-export/?', views.BomExport.as_view(), name='bom-export'),
url(r'^bom-download/?', views.BomDownload.as_view(), name='bom-download'),
url(r'^validate-bom/', views.BomValidate.as_view(), name='bom-validate'),
-
+
url(r'^pricing/', views.PartPricing.as_view(), name='part-pricing'),
url(r'^bom-upload/?', views.BomUpload.as_view(), name='upload-bom'),
@@ -96,9 +92,6 @@ part_urls = [
# Part category
url(r'^category/', include(category_urls)),
- # Part related
- url(r'^related-parts/', include(part_related_urls)),
-
# Part price breaks
url(r'^sale-price/', include(sale_price_break_urls)),
diff --git a/InvenTree/part/views.py b/InvenTree/part/views.py
index 65c42f7e36..cd9ea6b41a 100644
--- a/InvenTree/part/views.py
+++ b/InvenTree/part/views.py
@@ -30,7 +30,7 @@ import io
from rapidfuzz import fuzz
from decimal import Decimal, InvalidOperation
-from .models import PartCategory, Part, PartRelated
+from .models import PartCategory, Part
from .models import PartParameterTemplate
from .models import PartCategoryParameterTemplate
from .models import BomItem
@@ -85,75 +85,6 @@ class PartIndex(InvenTreeRoleMixin, ListView):
return context
-class PartRelatedCreate(AjaxCreateView):
- """ View for creating a new PartRelated object
-
- - The view only makes sense if a Part object is passed to it
- """
- model = PartRelated
- form_class = part_forms.CreatePartRelatedForm
- ajax_form_title = _("Add Related Part")
- ajax_template_name = "modal_form.html"
-
- def get_initial(self):
- """ Set parent part as part_1 field """
-
- initials = {}
-
- part_id = self.request.GET.get('part', None)
-
- if part_id:
- try:
- initials['part_1'] = Part.objects.get(pk=part_id)
- except (Part.DoesNotExist, ValueError):
- pass
-
- return initials
-
- def get_form(self):
- """ Create a form to upload a new PartRelated
-
- - Hide the 'part_1' field (parent part)
- - Display parts which are not yet related
- """
-
- form = super(AjaxCreateView, self).get_form()
-
- form.fields['part_1'].widget = HiddenInput()
-
- try:
- # Get parent part
- parent_part = self.get_initial()['part_1']
- # Get existing related parts
- related_parts = [related_part[1].pk for related_part in parent_part.get_related_parts()]
-
- # Build updated choice list excluding
- # - parts already related to parent part
- # - the parent part itself
- updated_choices = []
- for choice in form.fields["part_2"].choices:
- if (choice[0] not in related_parts) and (choice[0] != parent_part.pk):
- updated_choices.append(choice)
-
- # Update choices for related part
- form.fields['part_2'].choices = updated_choices
- except KeyError:
- pass
-
- return form
-
-
-class PartRelatedDelete(AjaxDeleteView):
- """ View for deleting a PartRelated object """
-
- model = PartRelated
- ajax_form_title = _("Delete Related Part")
- context_object_name = "related"
-
- # Explicit role requirement
- role_required = 'part.change'
-
-
class PartSetCategory(AjaxUpdateView):
""" View for settings the part category for multiple parts at once """
@@ -459,7 +390,7 @@ class PartDetail(InvenTreeRoleMixin, DetailView):
part = self.get_object()
ctx = part.get_context_data(self.request)
-
+
context.update(**ctx)
# Pricing information
@@ -1056,7 +987,7 @@ class BomUpload(InvenTreeRoleMixin, FileManagementFormView):
matches = sorted(matches, key=lambda item: item['match'], reverse=True)
part_options = [m['part'] for m in matches]
-
+
# Supply list of part options for each row, sorted by how closely they match the part name
row['item_options'] = part_options
@@ -1520,11 +1451,11 @@ class CategoryDetail(InvenTreeRoleMixin, DetailView):
# Prefetch parts parameters
parts_parameters = category.prefetch_parts_parameters(cascade=cascade)
-
+
# Get table headers (unique parameters names)
context['headers'] = category.get_unique_parameters(cascade=cascade,
prefetch=parts_parameters)
-
+
# Insert part information
context['headers'].insert(0, 'description')
context['headers'].insert(0, 'part')
diff --git a/InvenTree/report/models.py b/InvenTree/report/models.py
index 21604dbc94..faaa07e947 100644
--- a/InvenTree/report/models.py
+++ b/InvenTree/report/models.py
@@ -247,7 +247,7 @@ class ReportTemplateBase(ReportBase):
"""
template_string = Template(self.filename_pattern)
-
+
ctx = self.context(request)
context = Context(ctx)
diff --git a/InvenTree/report/tests.py b/InvenTree/report/tests.py
index 704f98fed0..67a97dc3a2 100644
--- a/InvenTree/report/tests.py
+++ b/InvenTree/report/tests.py
@@ -106,7 +106,7 @@ class ReportTest(InvenTreeAPITestCase):
# Filter by "enabled" status
response = self.get(url, {'enabled': True})
self.assertEqual(len(response.data), n)
-
+
response = self.get(url, {'enabled': False})
self.assertEqual(len(response.data), 0)
@@ -118,7 +118,7 @@ class ReportTest(InvenTreeAPITestCase):
# Filter by "enabled" status
response = self.get(url, {'enabled': True})
self.assertEqual(len(response.data), 0)
-
+
response = self.get(url, {'enabled': False})
self.assertEqual(len(response.data), n)
@@ -199,7 +199,7 @@ class BuildReportTest(ReportTest):
build = Build.objects.first()
response = self.get(url, {'build': build.pk})
-
+
self.assertEqual(type(response), StreamingHttpResponse)
headers = response.headers
diff --git a/InvenTree/stock/api.py b/InvenTree/stock/api.py
index 0c045f1cf5..fcfa58d01a 100644
--- a/InvenTree/stock/api.py
+++ b/InvenTree/stock/api.py
@@ -91,7 +91,7 @@ class StockDetail(generics.RetrieveUpdateDestroyAPIView):
Instead of "deleting" the StockItem
(which may take a long time)
we instead schedule it for deletion at a later date.
-
+
The background worker will delete these in the future
"""
@@ -134,7 +134,7 @@ class StockAdjustView(generics.CreateAPIView):
queryset = StockItem.objects.none()
def get_serializer_context(self):
-
+
context = super().get_serializer_context()
context['request'] = self.request
@@ -348,7 +348,7 @@ class StockFilter(rest_filters.FilterSet):
queryset = queryset.exclude(customer=None)
else:
queryset = queryset.filter(customer=None)
-
+
return queryset
depleted = rest_filters.BooleanFilter(label='Depleted', method='filter_depleted')
@@ -437,7 +437,7 @@ class StockList(generics.ListCreateAPIView):
})
with transaction.atomic():
-
+
# Create an initial stock item
item = serializer.save()
diff --git a/InvenTree/stock/forms.py b/InvenTree/stock/forms.py
index 96b6e0ba91..8e998460ca 100644
--- a/InvenTree/stock/forms.py
+++ b/InvenTree/stock/forms.py
@@ -83,7 +83,7 @@ class ConvertStockItemForm(HelperForm):
class CreateStockItemForm(HelperForm):
"""
Form for creating a new StockItem
-
+
TODO: Migrate this form to the modern API forms interface
"""
@@ -143,7 +143,7 @@ class CreateStockItemForm(HelperForm):
class SerializeStockForm(HelperForm):
"""
Form for serializing a StockItem.
-
+
TODO: Migrate this form to the modern API forms interface
"""
diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py
index 70e557a901..8457ca39ab 100644
--- a/InvenTree/stock/models.py
+++ b/InvenTree/stock/models.py
@@ -272,7 +272,7 @@ class StockItem(MPTTModel):
add_note = kwargs.pop('add_note', True)
notes = kwargs.pop('notes', '')
-
+
if self.pk:
# StockItem has already been saved
diff --git a/InvenTree/stock/serializers.py b/InvenTree/stock/serializers.py
index 31f21605a2..840eb4793e 100644
--- a/InvenTree/stock/serializers.py
+++ b/InvenTree/stock/serializers.py
@@ -56,7 +56,7 @@ class StockItemSerializerBrief(InvenTree.serializers.InvenTreeModelSerializer):
location_name = serializers.CharField(source='location', read_only=True)
part_name = serializers.CharField(source='part.full_name', read_only=True)
-
+
quantity = InvenTreeDecimalField()
class Meta:
@@ -615,7 +615,7 @@ class StockCountSerializer(StockAdjustmentSerializer):
stock_item = item['pk']
quantity = item['quantity']
-
+
stock_item.stocktake(
quantity,
request.user,
@@ -654,7 +654,7 @@ class StockRemoveSerializer(StockAdjustmentSerializer):
"""
def save(self):
-
+
request = self.context['request']
data = self.validated_data
@@ -707,7 +707,7 @@ class StockTransferSerializer(StockAdjustmentSerializer):
request = self.context['request']
data = self.validated_data
-
+
items = data['items']
notes = data.get('notes', '')
location = data['location']
diff --git a/InvenTree/stock/templates/stock/location_sidebar.html b/InvenTree/stock/templates/stock/location_sidebar.html
index 79372041fd..8a80f8224c 100644
--- a/InvenTree/stock/templates/stock/location_sidebar.html
+++ b/InvenTree/stock/templates/stock/location_sidebar.html
@@ -2,5 +2,7 @@
{% load static %}
{% load inventree_extras %}
-{% include "sidebar_item.html" with label='sublocations' text="Sublocations" icon="fa-sitemap" %}
-{% include "sidebar_item.html" with label='stock' text="Stock Items" icon="fa-boxes" %}
+{% trans "Sublocations" as text %}
+{% include "sidebar_item.html" with label='sublocations' text=text icon="fa-sitemap" %}
+{% trans "Stock Items" as text %}
+{% include "sidebar_item.html" with label='stock' text=text icon="fa-boxes" %}
diff --git a/InvenTree/stock/templates/stock/stock_sidebar.html b/InvenTree/stock/templates/stock/stock_sidebar.html
index c3c2a7ed91..8161251ad7 100644
--- a/InvenTree/stock/templates/stock/stock_sidebar.html
+++ b/InvenTree/stock/templates/stock/stock_sidebar.html
@@ -2,15 +2,21 @@
{% load static %}
{% load inventree_extras %}
-{% include "sidebar_item.html" with label='history' text="Stock Tracking" icon="fa-history" %}
+{% trans "Stock Tracking" as text %}
+{% include "sidebar_item.html" with label='history' text=text icon="fa-history" %}
{% if item.part.trackable %}
-{% include "sidebar_item.html" with label='test-data' text="Test Data" icon="fa-vial" %}
+{% trans "Test Data" as text %}
+{% include "sidebar_item.html" with label='test-data' text=text icon="fa-vial" %}
{% endif %}
{% if item.part.assembly %}
-{% include "sidebar_item.html" with label='installed-items' text="Installed Items" icon="fa-sign-in-alt" %}
+{% trans "Installed Items" as text %}
+{% include "sidebar_item.html" with label='installed-items' text=text icon="fa-sign-in-alt" %}
{% endif %}
{% if item.child_count > 0 %}
-{% include "sidebar_item.html" with label='children' text="Child Items" icon="fa-sitemap" %}
+{% trans "Child Items" as text %}
+{% include "sidebar_item.html" with label='children' text=text icon="fa-sitemap" %}
{% endif %}
-{% include "sidebar_item.html" with label='attachments' text="Attachments" icon="fa-paperclip" %}
-{% include "sidebar_item.html" with label='notes' text="Notes" icon="fa-clipboard" %}
+{% trans "Attachments" as text %}
+{% include "sidebar_item.html" with label='attachments' text=text icon="fa-paperclip" %}
+{% trans "Notes" as text %}
+{% include "sidebar_item.html" with label='notes' text=text icon="fa-clipboard" %}
diff --git a/InvenTree/stock/test_api.py b/InvenTree/stock/test_api.py
index 422f9f11ab..2c1b250e5f 100644
--- a/InvenTree/stock/test_api.py
+++ b/InvenTree/stock/test_api.py
@@ -368,7 +368,7 @@ class StockItemTest(StockAPITestCase):
)
self.assertIn('Quantity is required', str(response.data))
-
+
# POST with quantity and part and location
response = self.post(
self.list_url,
diff --git a/InvenTree/stock/urls.py b/InvenTree/stock/urls.py
index b28104f388..eb4aa2e65c 100644
--- a/InvenTree/stock/urls.py
+++ b/InvenTree/stock/urls.py
@@ -11,7 +11,7 @@ location_urls = [
url(r'^(?P\d+)/', include([
url(r'^delete/?', views.StockLocationDelete.as_view(), name='stock-location-delete'),
url(r'^qr_code/?', views.StockLocationQRCode.as_view(), name='stock-location-qr'),
-
+
# Anything else
url('^.*$', views.StockLocationDetail.as_view(), name='stock-location-detail'),
])),
diff --git a/InvenTree/stock/views.py b/InvenTree/stock/views.py
index 647c123130..6d93ae47e0 100644
--- a/InvenTree/stock/views.py
+++ b/InvenTree/stock/views.py
@@ -543,7 +543,7 @@ class StockItemInstall(AjaxUpdateView):
- Items must be in BOM of stock item
- Items must be serialized
"""
-
+
# Filter items in stock
items = StockItem.objects.filter(StockItem.IN_STOCK_FILTER)
@@ -900,7 +900,7 @@ class StockItemEdit(AjaxUpdateView):
item.save(user=self.request.user)
return item
-
+
class StockItemConvert(AjaxUpdateView):
"""
diff --git a/InvenTree/templates/InvenTree/settings/settings.html b/InvenTree/templates/InvenTree/settings/settings.html
index 7b141d2139..d7f5014b9f 100644
--- a/InvenTree/templates/InvenTree/settings/settings.html
+++ b/InvenTree/templates/InvenTree/settings/settings.html
@@ -250,18 +250,18 @@ $("#param-table").inventreeTable({
columns: [
{
field: 'pk',
- title: 'ID',
+ title: '{% trans "ID" %}',
visible: false,
switchable: false,
},
{
field: 'name',
- title: 'Name',
+ title: '{% trans "Name" %}',
sortable: 'true',
},
{
field: 'units',
- title: 'Units',
+ title: '{% trans "Units" %}',
sortable: 'true',
},
{
diff --git a/InvenTree/templates/InvenTree/settings/sidebar.html b/InvenTree/templates/InvenTree/settings/sidebar.html
index 21716eaaec..93b4ee1fb2 100644
--- a/InvenTree/templates/InvenTree/settings/sidebar.html
+++ b/InvenTree/templates/InvenTree/settings/sidebar.html
@@ -2,29 +2,48 @@
{% load static %}
{% load inventree_extras %}
-{% include "sidebar_header.html" with text="User Settings" icon='fa-user' %}
+{% trans "User Settings" as text %}
+{% include "sidebar_header.html" with text=text icon='fa-user' %}
-{% include "sidebar_item.html" with label='account' text="Account Settings" icon="fa-cog" %}
-{% include "sidebar_item.html" with label='user-display' text="Display Settings" icon="fa-desktop" %}
-{% include "sidebar_item.html" with label='user-home' text="Home Page" icon="fa-home" %}
-{% include "sidebar_item.html" with label='user-search' text="Search Settings" icon="fa-search" %}
-{% include "sidebar_item.html" with label='user-labels' text="Label Printing" icon="fa-tag" %}
-{% include "sidebar_item.html" with label='user-reports' text="Reporting" icon="fa-file-pdf" %}
+{% trans "Account Settings" as text %}
+{% include "sidebar_item.html" with label='account' text=text icon="fa-cog" %}
+{% trans "Display Settings" as text %}
+{% include "sidebar_item.html" with label='user-display' text=text icon="fa-desktop" %}
+{% trans "Home Page" as text %}
+{% include "sidebar_item.html" with label='user-home' text=text icon="fa-home" %}
+{% trans "Search Settings" as text %}
+{% include "sidebar_item.html" with label='user-search' text=text icon="fa-search" %}
+{% trans "Label Printing" as text %}
+{% include "sidebar_item.html" with label='user-labels' text=text icon="fa-tag" %}
+{% trans "Reporting" as text %}
+{% include "sidebar_item.html" with label='user-reports' text=text icon="fa-file-pdf" %}
{% if user.is_staff %}
-{% include "sidebar_header.html" with text="Global Settings" icon='fa-cogs' %}
+{% trans "Global Settings" as text %}
+{% include "sidebar_header.html" with text=text icon='fa-cogs' %}
-{% include "sidebar_item.html" with label='server' text="Server Configuration" icon="fa-server" %}
-{% include "sidebar_item.html" with label='login' text="Login Settings" icon="fa-fingerprint" %}
-{% include "sidebar_item.html" with label='barcodes' text="Barcode Support" icon="fa-qrcode" %}
-{% include "sidebar_item.html" with label='currencies' text="Currencies" icon="fa-dollar-sign" %}
-{% include "sidebar_item.html" with label='reporting' text="Reporting" icon="fa-file-pdf" %}
-{% include "sidebar_item.html" with label='parts' text="Parts" icon="fa-shapes" %}
-{% include "sidebar_item.html" with label='category' text="Categories" icon="fa-sitemap" %}
-{% include "sidebar_item.html" with label='stock' text="Stock" icon="fa-boxes" %}
-{% include "sidebar_item.html" with label='build-order' text="Build Orders" icon="fa-tools" %}
-{% include "sidebar_item.html" with label='purchase-order' text="Purchase Orders" icon="fa-shopping-cart" %}
-{% include "sidebar_item.html" with label='sales-order' text="Sales Orders" icon="fa-truck" %}
+{% trans "Server Configuration" as text %}
+{% include "sidebar_item.html" with label='server' text=text icon="fa-server" %}
+{% trans "Login Settings" as text %}
+{% include "sidebar_item.html" with label='login' text=text icon="fa-fingerprint" %}
+{% trans "Barcode Support" as text %}
+{% include "sidebar_item.html" with label='barcodes' text=text icon="fa-qrcode" %}
+{% trans "Currencies" as text %}
+{% include "sidebar_item.html" with label='currencies' text=text icon="fa-dollar-sign" %}
+{% trans "Reporting" as text %}
+{% include "sidebar_item.html" with label='reporting' text=text icon="fa-file-pdf" %}
+{% trans "Parts" as text %}
+{% include "sidebar_item.html" with label='parts' text=text icon="fa-shapes" %}
+{% trans "Categories" as text %}
+{% include "sidebar_item.html" with label='category' text=text icon="fa-sitemap" %}
+{% trans "Stock" as text %}
+{% include "sidebar_item.html" with label='stock' text=text icon="fa-boxes" %}
+{% trans "Build Orders" as text %}
+{% include "sidebar_item.html" with label='build-order' text=text icon="fa-tools" %}
+{% trans "Purchase Orders" as text %}
+{% include "sidebar_item.html" with label='purchase-order' text=text icon="fa-shopping-cart" %}
+{% trans "Sales Orders" as text %}
+{% include "sidebar_item.html" with label='sales-order' text=text icon="fa-truck" %}
{% endif %}
\ No newline at end of file
diff --git a/InvenTree/templates/InvenTree/settings/user.html b/InvenTree/templates/InvenTree/settings/user.html
index d22c89954f..ba99a69fde 100644
--- a/InvenTree/templates/InvenTree/settings/user.html
+++ b/InvenTree/templates/InvenTree/settings/user.html
@@ -214,7 +214,7 @@
{% if ALL_LANG %}
. {% trans "Show only sufficent" %}
{% else %}
- and hidden. {% trans "Show them too" %}
+ {% trans "and hidden." %} {% trans "Show them too" %}
{% endif %}
diff --git a/InvenTree/templates/js/translated/bom.js b/InvenTree/templates/js/translated/bom.js
index 1885624dd8..3cde5bca61 100644
--- a/InvenTree/templates/js/translated/bom.js
+++ b/InvenTree/templates/js/translated/bom.js
@@ -192,6 +192,7 @@ function bomSubstitutesDialog(bom_item_id, substitutes, options={}) {
${part.description} |
+ ${part.stock} |
${buttons} |
`;
@@ -212,6 +213,7 @@ function bomSubstitutesDialog(bom_item_id, substitutes, options={}) {
{% trans "Part" %} |
{% trans "Description" %} |
+ {% trans "Stock" %} |
|
diff --git a/InvenTree/templates/js/translated/company.js b/InvenTree/templates/js/translated/company.js
index 0e71ad99b1..4ab7a7fa3d 100644
--- a/InvenTree/templates/js/translated/company.js
+++ b/InvenTree/templates/js/translated/company.js
@@ -124,6 +124,7 @@ function supplierPartFields() {
part_detail: true,
manufacturer_detail: true,
},
+ auto_fill: true,
},
description: {},
link: {
diff --git a/InvenTree/templates/js/translated/filters.js b/InvenTree/templates/js/translated/filters.js
index 227fbb8009..7ae8c3e4b4 100644
--- a/InvenTree/templates/js/translated/filters.js
+++ b/InvenTree/templates/js/translated/filters.js
@@ -273,7 +273,7 @@ function setupFilterList(tableKey, table, target) {
var element = $(target);
- if (!element) {
+ if (!element || !element.exists()) {
console.log(`WARNING: setupFilterList could not find target '${target}'`);
return;
}
diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js
index 89e09a314e..1bf025b629 100644
--- a/InvenTree/templates/js/translated/part.js
+++ b/InvenTree/templates/js/translated/part.js
@@ -32,6 +32,7 @@
loadPartTable,
loadPartTestTemplateTable,
loadPartVariantTable,
+ loadRelatedPartsTable,
loadSellPricingChart,
loadSimplePartTable,
loadStockPricingChart,
@@ -705,6 +706,97 @@ function loadPartParameterTable(table, url, options) {
}
+function loadRelatedPartsTable(table, part_id, options={}) {
+ /*
+ * Load table of "related" parts
+ */
+
+ options.params = options.params || {};
+
+ options.params.part = part_id;
+
+ var filters = {};
+
+ for (var key in options.params) {
+ filters[key] = options.params[key];
+ }
+
+ setupFilterList('related', $(table), options.filterTarget);
+
+ function getPart(row) {
+ if (row.part_1 == part_id) {
+ return row.part_2_detail;
+ } else {
+ return row.part_1_detail;
+ }
+ }
+
+ var columns = [
+ {
+ field: 'name',
+ title: '{% trans "Part" %}',
+ switchable: false,
+ formatter: function(value, row) {
+
+ var part = getPart(row);
+
+ var html = imageHoverIcon(part.thumbnail) + renderLink(part.full_name, `/part/${part.pk}/`);
+
+ html += makePartIcons(part);
+
+ return html;
+ }
+ },
+ {
+ field: 'description',
+ title: '{% trans "Description" %}',
+ formatter: function(value, row) {
+ return getPart(row).description;
+ }
+ },
+ {
+ field: 'actions',
+ title: '',
+ switchable: false,
+ formatter: function(value, row) {
+
+ var html = ``;
+
+ html += makeIconButton('fa-trash-alt icon-red', 'button-related-delete', row.pk, '{% trans "Delete part relationship" %}');
+
+ html += '
';
+
+ return html;
+ }
+ }
+ ];
+
+ $(table).inventreeTable({
+ url: '{% url "api-part-related-list" %}',
+ groupBy: false,
+ name: 'related',
+ original: options.params,
+ queryParams: filters,
+ columns: columns,
+ showColumns: false,
+ search: true,
+ onPostBody: function() {
+ $(table).find('.button-related-delete').click(function() {
+ var pk = $(this).attr('pk');
+
+ constructForm(`/api/part/related/${pk}/`, {
+ method: 'DELETE',
+ title: '{% trans "Delete Part Relationship" %}',
+ onSuccess: function() {
+ $(table).bootstrapTable('refresh');
+ }
+ });
+ });
+ },
+ });
+}
+
+
function loadParametricPartTable(table, options={}) {
/* Load parametric table for part parameters
*
@@ -836,6 +928,7 @@ function loadPartTable(table, url, options={}) {
* query: extra query params for API request
* buttons: If provided, link buttons to selection status of this table
* disableFilters: If true, disable custom filters
+ * actions: Provide a callback function to construct an "actions" column
*/
// Ensure category detail is included
@@ -878,7 +971,7 @@ function loadPartTable(table, url, options={}) {
col = {
field: 'IPN',
- title: 'IPN',
+ title: '{% trans "IPN" %}',
};
if (!options.params.ordering) {
@@ -895,7 +988,7 @@ function loadPartTable(table, url, options={}) {
var name = row.full_name;
- var display = imageHoverIcon(row.thumbnail) + renderLink(name, '/part/' + row.pk + '/');
+ var display = imageHoverIcon(row.thumbnail) + renderLink(name, `/part/${row.pk}/`);
display += makePartIcons(row);
@@ -993,6 +1086,21 @@ function loadPartTable(table, url, options={}) {
}
});
+ // Push an "actions" column
+ if (options.actions) {
+ columns.push({
+ field: 'actions',
+ title: '',
+ switchable: false,
+ visible: true,
+ searchable: false,
+ sortable: false,
+ formatter: function(value, row) {
+ return options.actions(value, row);
+ }
+ });
+ }
+
var grid_view = options.gridView && inventreeLoad('part-grid-view') == 1;
$(table).inventreeTable({
@@ -1020,6 +1128,10 @@ function loadPartTable(table, url, options={}) {
$('#view-part-grid').removeClass('btn-secondary').addClass('btn-outline-secondary');
$('#view-part-list').removeClass('btn-outline-secondary').addClass('btn-secondary');
}
+
+ if (options.onPostBody) {
+ options.onPostBody();
+ }
},
buttons: options.gridView ? [
{
diff --git a/InvenTree/templates/js/translated/stock.js b/InvenTree/templates/js/translated/stock.js
index ba4238e6f7..c624278c93 100644
--- a/InvenTree/templates/js/translated/stock.js
+++ b/InvenTree/templates/js/translated/stock.js
@@ -1101,7 +1101,7 @@ function loadStockTable(table, options) {
col = {
field: 'part_detail.IPN',
- title: 'IPN',
+ title: '{% trans "IPN" %}',
sortName: 'part__IPN',
visible: params['part_detail'],
switchable: params['part_detail'],
diff --git a/InvenTree/templates/js/translated/table_filters.js b/InvenTree/templates/js/translated/table_filters.js
index 903774f8e5..409192f74d 100644
--- a/InvenTree/templates/js/translated/table_filters.js
+++ b/InvenTree/templates/js/translated/table_filters.js
@@ -74,6 +74,12 @@ function getAvailableTableFilters(tableKey) {
};
}
+ // Filters for the "related parts" table
+ if (tableKey == 'related') {
+ return {
+ };
+ }
+
// Filters for the "used in" table
if (tableKey == 'usedin') {
return {
diff --git a/InvenTree/templates/sidebar_header.html b/InvenTree/templates/sidebar_header.html
index b07df67c5d..816621c0f3 100644
--- a/InvenTree/templates/sidebar_header.html
+++ b/InvenTree/templates/sidebar_header.html
@@ -1,8 +1,8 @@
{% load i18n %}
-
\ No newline at end of file
diff --git a/InvenTree/templates/sidebar_item.html b/InvenTree/templates/sidebar_item.html
index d5c7b08365..85211a0c3a 100644
--- a/InvenTree/templates/sidebar_item.html
+++ b/InvenTree/templates/sidebar_item.html
@@ -1,8 +1,8 @@
{% load i18n %}
-