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/.github/workflows/html.yaml b/.github/workflows/html.yaml index d0084ae032..580962771e 100644 --- a/.github/workflows/html.yaml +++ b/.github/workflows/html.yaml @@ -23,11 +23,13 @@ jobs: INVENTREE_MEDIA_ROOT: ./media INVENTREE_STATIC_ROOT: ./static steps: - - name: Install node.js - uses: actions/setup-node@v2 - - run: npm install - name: Checkout Code uses: actions/checkout@v2 + - name: Install node.js + uses: actions/setup-node@v2 + with: + node-version: '16' + - run: npm install - name: Setup Python uses: actions/setup-python@v2 with: @@ -41,7 +43,6 @@ jobs: invoke static - name: Check HTML Files run: | - npm install markuplint npx markuplint InvenTree/build/templates/build/*.html npx markuplint InvenTree/company/templates/company/*.html npx markuplint InvenTree/order/templates/order/*.html diff --git a/.github/workflows/javascript.yaml b/.github/workflows/javascript.yaml index a07b516ac6..98251b2426 100644 --- a/.github/workflows/javascript.yaml +++ b/.github/workflows/javascript.yaml @@ -23,11 +23,13 @@ jobs: INVENTREE_MEDIA_ROOT: ./media INVENTREE_STATIC_ROOT: ./static steps: - - name: Install node.js - uses: actions/setup-node@v2 - - run: npm install - name: Checkout Code uses: actions/checkout@v2 + - name: Install node.js + uses: actions/setup-node@v2 + with: + node-version: '16' + - run: npm install - name: Setup Python uses: actions/setup-python@v2 with: @@ -45,6 +47,5 @@ jobs: python check_js_templates.py - name: Lint Javascript Files run: | - npm install eslint eslint-config-google invoke render-js-files npx eslint js_tmp/*.js \ No newline at end of file diff --git a/.gitignore b/.gitignore index 420524d06f..74669a5756 100644 --- a/.gitignore +++ b/.gitignore @@ -78,5 +78,4 @@ locale_stats.json # node.js package-lock.json -package.json node_modules/ \ No newline at end of file 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/models.py b/InvenTree/InvenTree/models.py index 0f8350f84f..b42d54cbe9 100644 --- a/InvenTree/InvenTree/models.py +++ b/InvenTree/InvenTree/models.py @@ -21,7 +21,8 @@ from django.dispatch import receiver from mptt.models import MPTTModel, TreeForeignKey from mptt.exceptions import InvalidMove -from .validators import validate_tree_name +from InvenTree.fields import InvenTreeURLField +from InvenTree.validators import validate_tree_name logger = logging.getLogger('inventree') @@ -48,6 +49,9 @@ class ReferenceIndexingMixin(models.Model): """ A mixin for keeping track of numerical copies of the "reference" field. + !!DANGER!! always add `ReferenceIndexingSerializerMixin`to all your models serializers to + ensure the reference field is not too big + Here, we attempt to convert a "reference" field value (char) to an integer, for performing fast natural sorting. @@ -68,33 +72,39 @@ class ReferenceIndexingMixin(models.Model): reference = getattr(self, 'reference', '') - # Default value if we cannot convert to an integer - ref_int = 0 + self.reference_int = extract_int(reference) - # Look at the start of the string - can it be "integerized"? - result = re.match(r"^(\d+)", reference) + reference_int = models.BigIntegerField(default=0) - if result and len(result.groups()) == 1: - ref = result.groups()[0] - try: - ref_int = int(ref) - except: - ref_int = 0 - self.reference_int = ref_int +def extract_int(reference): + # Default value if we cannot convert to an integer + ref_int = 0 - reference_int = models.IntegerField(default=0) + # Look at the start of the string - can it be "integerized"? + result = re.match(r"^(\d+)", reference) + + if result and len(result.groups()) == 1: + ref = result.groups()[0] + try: + ref_int = int(ref) + except: + ref_int = 0 + return ref_int class InvenTreeAttachment(models.Model): """ Provides an abstracted class for managing file attachments. + An attachment can be either an uploaded file, or an external URL + Attributes: attachment: File comment: String descriptor for the attachment user: User associated with file upload upload_date: Date the file was uploaded """ + def getSubdir(self): """ Return the subdirectory under which attachments should be stored. @@ -103,11 +113,32 @@ class InvenTreeAttachment(models.Model): return "attachments" + def save(self, *args, **kwargs): + # Either 'attachment' or 'link' must be specified! + if not self.attachment and not self.link: + raise ValidationError({ + 'attachment': _('Missing file'), + 'link': _('Missing external link'), + }) + + super().save(*args, **kwargs) + def __str__(self): - return os.path.basename(self.attachment.name) + if self.attachment is not None: + return os.path.basename(self.attachment.name) + else: + return str(self.link) attachment = models.FileField(upload_to=rename_attachment, verbose_name=_('Attachment'), - help_text=_('Select file to attach')) + help_text=_('Select file to attach'), + blank=True, null=True + ) + + link = InvenTreeURLField( + blank=True, null=True, + verbose_name=_('Link'), + help_text=_('Link to external URL') + ) comment = models.CharField(blank=True, max_length=100, verbose_name=_('Comment'), help_text=_('File comment')) @@ -123,7 +154,10 @@ class InvenTreeAttachment(models.Model): @property def basename(self): - return os.path.basename(self.attachment.name) + if self.attachment: + return os.path.basename(self.attachment.name) + else: + return None @basename.setter def basename(self, fn): diff --git a/InvenTree/InvenTree/serializers.py b/InvenTree/InvenTree/serializers.py index ab5a27594f..59ba0295cb 100644 --- a/InvenTree/InvenTree/serializers.py +++ b/InvenTree/InvenTree/serializers.py @@ -16,6 +16,7 @@ from django.conf import settings from django.contrib.auth.models import User from django.core.exceptions import ValidationError as DjangoValidationError from django.utils.translation import ugettext_lazy as _ +from django.db import models from djmoney.contrib.django_rest_framework.fields import MoneyField from djmoney.money import Money @@ -27,6 +28,8 @@ from rest_framework.fields import empty from rest_framework.exceptions import ValidationError from rest_framework.serializers import DecimalField +from .models import extract_int + class InvenTreeMoneySerializer(MoneyField): """ @@ -66,7 +69,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 @@ -239,20 +242,15 @@ class InvenTreeModelSerializer(serializers.ModelSerializer): return data -class InvenTreeAttachmentSerializer(InvenTreeModelSerializer): +class ReferenceIndexingSerializerMixin(): """ - Special case of an InvenTreeModelSerializer, which handles an "attachment" model. - - The only real addition here is that we support "renaming" of the attachment file. + This serializer mixin ensures the the reference is not to big / small + for the BigIntegerField """ - - # The 'filename' field must be present in the serializer - filename = serializers.CharField( - label=_('Filename'), - required=False, - source='basename', - allow_blank=False, - ) + def validate_reference(self, value): + if extract_int(value) > models.BigIntegerField.MAX_BIGINT: + raise serializers.ValidationError('reference is to to big') + return value class InvenTreeAttachmentSerializerField(serializers.FileField): @@ -284,6 +282,27 @@ class InvenTreeAttachmentSerializerField(serializers.FileField): return os.path.join(str(settings.MEDIA_URL), str(value)) +class InvenTreeAttachmentSerializer(InvenTreeModelSerializer): + """ + Special case of an InvenTreeModelSerializer, which handles an "attachment" model. + + The only real addition here is that we support "renaming" of the attachment file. + """ + + attachment = InvenTreeAttachmentSerializerField( + required=False, + allow_null=False, + ) + + # The 'filename' field must be present in the serializer + filename = serializers.CharField( + label=_('Filename'), + required=False, + source='basename', + allow_blank=False, + ) + + class InvenTreeImageSerializerField(serializers.ImageField): """ Custom image serializer. diff --git a/InvenTree/InvenTree/settings.py b/InvenTree/InvenTree/settings.py index b044ef6165..cec1aef654 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): @@ -256,7 +257,7 @@ INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', - 'django.contrib.sessions', + 'user_sessions', # db user sessions 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sites', @@ -304,7 +305,7 @@ INSTALLED_APPS = [ MIDDLEWARE = CONFIG.get('middleware', [ 'django.middleware.security.SecurityMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', + 'user_sessions.middleware.SessionMiddleware', # db user sessions 'django.middleware.locale.LocaleMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', @@ -634,6 +635,12 @@ if _cache_host: # as well Q_CLUSTER["django_redis"] = "worker" +# database user sessions +SESSION_ENGINE = 'user_sessions.backends.db' +LOGOUT_REDIRECT_URL = 'index' +SILENCED_SYSTEM_CHECKS = [ + 'admin.E410', +] # Password validation # https://docs.djangoproject.com/en/1.10/ref/settings/#auth-password-validators @@ -673,7 +680,7 @@ LANGUAGES = [ ('el', _('Greek')), ('en', _('English')), ('es', _('Spanish')), - ('es-mx', _('Spanish (Mexican')), + ('es-mx', _('Spanish (Mexican)')), ('fr', _('French')), ('he', _('Hebrew')), ('it', _('Italian')), @@ -691,6 +698,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/css/inventree.css b/InvenTree/InvenTree/static/css/inventree.css index cd9ce410de..a61696f547 100644 --- a/InvenTree/InvenTree/static/css/inventree.css +++ b/InvenTree/InvenTree/static/css/inventree.css @@ -781,6 +781,7 @@ input[type="submit"] { .btn-small { padding: 3px; padding-left: 5px; + padding-right: 5px; } .btn-remove { 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 f13113fc44..d048a3a05b 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -38,6 +38,7 @@ from rest_framework.documentation import include_docs_urls from .views import auth_request from .views import IndexView, SearchView, DatabaseStatsView from .views import SettingsView, EditUserView, SetPasswordView, CustomEmailView, CustomConnectionsView, CustomPasswordResetFromKeyView +from .views import CustomSessionDeleteView, CustomSessionDeleteOtherView from .views import CurrencyRefreshView from .views import AppearanceSelectView, SettingCategorySelectView from .views import DynamicJsView @@ -77,7 +78,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'), @@ -157,6 +158,10 @@ frontendpatterns = [ url(r'^search/', SearchView.as_view(), name='search'), url(r'^stats/', DatabaseStatsView.as_view(), name='stats'), + # DB user sessions + url(r'^accounts/sessions/other/delete/$', view=CustomSessionDeleteOtherView.as_view(), name='session_delete_other', ), + url(r'^accounts/sessions/(?P\w+)/delete/$', view=CustomSessionDeleteView.as_view(), name='session_delete', ), + # Single Sign On / allauth # overrides of urlpatterns url(r'^accounts/email/', CustomEmailView.as_view(), name='account_email'), diff --git a/InvenTree/InvenTree/version.py b/InvenTree/InvenTree/version.py index ac6e268f78..bbf0174453 100644 --- a/InvenTree/InvenTree/version.py +++ b/InvenTree/InvenTree/version.py @@ -12,11 +12,15 @@ import common.models INVENTREE_SW_VERSION = "0.6.0 dev" # InvenTree API version -INVENTREE_API_VERSION = 18 +INVENTREE_API_VERSION = 19 """ Increment this API version number whenever there is a significant change to the API that any clients need to know about +v19 -> 2021-12-02 + - Adds the ability to filter the StockItem API by "part_tree" + - Returns only stock items which match a particular part.tree_id field + v18 -> 2021-11-15 - Adds the ability to filter BomItem API by "uses" field - This returns a list of all BomItems which "use" the specified part @@ -120,10 +124,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/InvenTree/views.py b/InvenTree/InvenTree/views.py index 989fb1bc9d..a5c4da48b6 100644 --- a/InvenTree/InvenTree/views.py +++ b/InvenTree/InvenTree/views.py @@ -14,6 +14,7 @@ from django.utils.translation import gettext_lazy as _ from django.template.loader import render_to_string from django.http import HttpResponse, JsonResponse, HttpResponseRedirect from django.urls import reverse_lazy +from django.utils.timezone import now from django.shortcuts import redirect from django.conf import settings @@ -29,6 +30,7 @@ from allauth.socialaccount.forms import DisconnectForm from allauth.account.models import EmailAddress from allauth.account.views import EmailView, PasswordResetFromKeyView from allauth.socialaccount.views import ConnectionsView +from user_sessions.views import SessionDeleteView, SessionDeleteOtherView from common.settings import currency_code_default, currency_codes @@ -733,6 +735,10 @@ class SettingsView(TemplateView): ctx["request"] = self.request ctx['social_form'] = DisconnectForm(request=self.request) + # user db sessions + ctx['session_key'] = self.request.session.session_key + ctx['session_list'] = self.request.user.session_set.filter(expire_date__gt=now()).order_by('-last_activity') + return ctx @@ -766,6 +772,20 @@ class CustomPasswordResetFromKeyView(PasswordResetFromKeyView): success_url = reverse_lazy("account_login") +class UserSessionOverride(): + """overrides sucessurl to lead to settings""" + def get_success_url(self): + return str(reverse_lazy('settings')) + + +class CustomSessionDeleteView(UserSessionOverride, SessionDeleteView): + pass + + +class CustomSessionDeleteOtherView(UserSessionOverride, SessionDeleteOtherView): + pass + + class CurrencyRefreshView(RedirectView): """ POST endpoint to refresh / update exchange rates 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/migrations/0033_auto_20211128_0151.py b/InvenTree/build/migrations/0033_auto_20211128_0151.py new file mode 100644 index 0000000000..db8df848ce --- /dev/null +++ b/InvenTree/build/migrations/0033_auto_20211128_0151.py @@ -0,0 +1,25 @@ +# Generated by Django 3.2.5 on 2021-11-28 01:51 + +import InvenTree.fields +import InvenTree.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('build', '0032_auto_20211014_0632'), + ] + + operations = [ + migrations.AddField( + model_name='buildorderattachment', + name='link', + field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external URL', null=True, verbose_name='Link'), + ), + migrations.AlterField( + model_name='buildorderattachment', + name='attachment', + field=models.FileField(blank=True, help_text='Select file to attach', null=True, upload_to=InvenTree.models.rename_attachment, verbose_name='Attachment'), + ), + ] diff --git a/InvenTree/build/migrations/0034_alter_build_reference_int.py b/InvenTree/build/migrations/0034_alter_build_reference_int.py new file mode 100644 index 0000000000..8b14d3812e --- /dev/null +++ b/InvenTree/build/migrations/0034_alter_build_reference_int.py @@ -0,0 +1,18 @@ +# Generated by Django 3.2.5 on 2021-12-01 21:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('build', '0033_auto_20211128_0151'), + ] + + operations = [ + migrations.AlterField( + model_name='build', + name='reference_int', + field=models.BigIntegerField(default=0), + ), + ] 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 e8c22e416e..2431855d3c 100644 --- a/InvenTree/build/serializers.py +++ b/InvenTree/build/serializers.py @@ -16,7 +16,7 @@ from rest_framework import serializers from rest_framework.serializers import ValidationError from InvenTree.serializers import InvenTreeModelSerializer, InvenTreeAttachmentSerializer -from InvenTree.serializers import InvenTreeAttachmentSerializerField, UserSerializerBrief +from InvenTree.serializers import UserSerializerBrief, ReferenceIndexingSerializerMixin import InvenTree.helpers from InvenTree.serializers import InvenTreeDecimalField @@ -32,7 +32,7 @@ from users.serializers import OwnerSerializer from .models import Build, BuildItem, BuildOrderAttachment -class BuildSerializer(InvenTreeModelSerializer): +class BuildSerializer(ReferenceIndexingSerializerMixin, InvenTreeModelSerializer): """ Serializes a Build object """ @@ -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 """ - + super().validate(data) items = data.get('items', []) if len(items) == 0: raise ValidationError(_('Allocation items must be provided')) - + return data def save(self): @@ -516,8 +516,6 @@ class BuildAttachmentSerializer(InvenTreeAttachmentSerializer): Serializer for a BuildAttachment """ - attachment = InvenTreeAttachmentSerializerField(required=True) - class Meta: model = BuildOrderAttachment @@ -525,6 +523,7 @@ class BuildAttachmentSerializer(InvenTreeAttachmentSerializer): 'pk', 'build', 'attachment', + 'link', 'filename', 'comment', 'upload_date', diff --git a/InvenTree/build/templates/build/build_base.html b/InvenTree/build/templates/build/build_base.html index 22a126fcdf..428e40649f 100644 --- a/InvenTree/build/templates/build/build_base.html +++ b/InvenTree/build/templates/build/build_base.html @@ -12,7 +12,7 @@ {% block breadcrumbs %} -{% endblock %} +{% endblock breadcrumbs %} {% block thumbnail %} -{% endblock %} +{% endblock thumbnail %} {% block heading %} {% trans "Build Order" %} {{ build }} @@ -66,11 +66,23 @@ src="{% static 'img/blank_image.png' %}" {% endif %} {% endif %} -{% endblock %} +{% endblock actions %} {% block details %} -

{{ build.title }}

+ + + + + + + + + + + + +
{% trans "Part" %}{{ build.part.full_name }}
{% trans "Build Description" %}{{ build.title }}
{% if build.sales_order %} @@ -114,11 +126,7 @@ src="{% static 'img/blank_image.png' %}" {% block details_right %} - - - - - + diff --git a/InvenTree/build/templates/build/detail.html b/InvenTree/build/templates/build/detail.html index 31e9f38080..8479c2819f 100644 --- a/InvenTree/build/templates/build/detail.html +++ b/InvenTree/build/templates/build/detail.html @@ -431,53 +431,17 @@ enableDragAndDrop( } ); -// Callback for creating a new attachment -$('#new-attachment').click(function() { - - constructForm('{% url "api-build-attachment-list" %}', { - fields: { - attachment: {}, - comment: {}, - build: { - value: {{ build.pk }}, - hidden: true, - } - }, - method: 'POST', - onSuccess: reloadAttachmentTable, - title: '{% trans "Add Attachment" %}', - }); -}); - -loadAttachmentTable( - '{% url "api-build-attachment-list" %}', - { - filters: { - build: {{ build.pk }}, - }, - onEdit: function(pk) { - var url = `/api/build/attachment/${pk}/`; - - constructForm(url, { - fields: { - filename: {}, - comment: {}, - }, - onSuccess: reloadAttachmentTable, - title: '{% trans "Edit Attachment" %}', - }); - }, - onDelete: function(pk) { - - constructForm(`/api/build/attachment/${pk}/`, { - method: 'DELETE', - confirmMessage: '{% trans "Confirm Delete Operation" %}', - title: '{% trans "Delete Attachment" %}', - onSuccess: reloadAttachmentTable, - }); +loadAttachmentTable('{% url "api-build-attachment-list" %}', { + filters: { + build: {{ build.pk }}, + }, + fields: { + build: { + value: {{ build.pk }}, + hidden: true, } } -); +}); $('#edit-notes').click(function() { constructForm('{% url "api-build-detail" build.pk %}', { 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 0318ac7d5e..1284b8b76a 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/company_base.html b/InvenTree/company/templates/company/company_base.html index b9cd650395..3903dba685 100644 --- a/InvenTree/company/templates/company/company_base.html +++ b/InvenTree/company/templates/company/company_base.html @@ -19,21 +19,26 @@ {% include "admin_button.html" with url=url %} {% endif %} {% if company.is_supplier and roles.purchase_order.add %} - {% endif %} -{% if perms.company.change_company %} - -{% endif %} -{% if perms.company.delete_company %} - -{% endif %} -{% endblock %} + +{% endblock actions %} {% block thumbnail %}
@@ -56,7 +61,29 @@ {% endblock %} {% block details %} -

{{ company.description }}

+
{% trans "Part" %}{{ build.part.full_name }}
{% trans "Quantity" %}
+ + + + + + + + + + + + + + + + + + + + + +
{% trans "Description" %}{{ company.description }}
{%trans "Manufacturer" %}{% include "yesnolabel.html" with value=company.is_manufacturer %}
{% trans "Supplier" %}{% include 'yesnolabel.html' with value=company.is_supplier %}
{% trans "Customer" %}{% include 'yesnolabel.html' with value=company.is_customer %}
{% endblock %} @@ -110,22 +137,6 @@ {{ company.contact }}{% include "clip.html"%} {% endif %} - - - - {%trans "Manufacturer" %} - {% include "yesnolabel.html" with value=company.is_manufacturer %} - - - - {% trans "Supplier" %} - {% include 'yesnolabel.html' with value=company.is_supplier %} - - - - {% trans "Customer" %} - {% include 'yesnolabel.html' with value=company.is_customer %} - {% endblock %} diff --git a/InvenTree/company/templates/company/manufacturer_part.html b/InvenTree/company/templates/company/manufacturer_part.html index fcfa22ee2d..84e8016a59 100644 --- a/InvenTree/company/templates/company/manufacturer_part.html +++ b/InvenTree/company/templates/company/manufacturer_part.html @@ -8,7 +8,7 @@ InvenTree | {% trans "Manufacturer Part" %} {% block sidebar %} {% include "company/manufacturer_part_sidebar.html" %} -{% endblock %} +{% endblock sidebar %} {% block breadcrumbs %} @@ -16,13 +16,13 @@ InvenTree | {% trans "Manufacturer Part" %} {% endif %} -{% endblock %} +{% endblock breadcrumbs %} {% block heading %}

{% trans "Manufacturer Part" %}: {{ part.part.full_name }}

-{% endblock %} +{% endblock heading %} {% block actions %} {% if user.is_staff and perms.company.change_company %} @@ -46,7 +46,7 @@ InvenTree | {% trans "Manufacturer Part" %} {% endif %} {% endif %} -{% endblock %} +{% endblock actions %} {% block thumbnail %} -{% endblock %} +{% endblock thumbnail %} {% block details %} -{% endblock %} + + + + + + + + {% if part.description %} + + + + + + {% endif %} +
{% trans "Internal Part" %} + {% if part.part %} + {{ part.part.full_name }}{% include "clip.html"%} + {% endif %} +
{% trans "Description" %}{{ part.description }}{% include "clip.html"%}
+ +{% endblock details %} {% block details_right %} - - - - - - {% if part.description %} - - - - - - {% endif %} - {% if part.link %} - - - - - - {% endif %} - - - - - - - - - + + + + + + + + + + + + {% if part.link %} + + + + + + {% endif %}
{% trans "Internal Part" %} - {% if part.part %} - {{ part.part.full_name }}{% include "clip.html"%} - {% endif %} -
{% trans "Description" %}{{ part.description }}{% include "clip.html"%}
{% trans "External Link" %}{{ part.link }}{% include "clip.html"%}
{% trans "Manufacturer" %}{{ part.manufacturer.name }}{% include "clip.html"%}
{% trans "MPN" %}{{ part.MPN }}{% include "clip.html"%}
{% trans "Manufacturer" %}{{ part.manufacturer.name }}{% include "clip.html"%}
{% trans "MPN" %}{{ part.MPN }}{% include "clip.html"%}
{% trans "External Link" %}{{ part.link }}{% include "clip.html"%}
-{% endblock %} +{% endblock details_right %} {% block page_content %} 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.html b/InvenTree/company/templates/company/supplier_part.html index 276a9f7ebc..89e8f91493 100644 --- a/InvenTree/company/templates/company/supplier_part.html +++ b/InvenTree/company/templates/company/supplier_part.html @@ -5,11 +5,11 @@ {% block page_title %} {% inventree_title %} | {% trans "Supplier Part" %} -{% endblock %} +{% endblock page_title %} {% block sidebar %} {% include "company/supplier_part_sidebar.html" %} -{% endblock %} +{% endblock sidebar %} {% block breadcrumbs %} @@ -17,13 +17,13 @@ {% endif %} -{% endblock %} +{% endblock breadcrumbs %} {% block heading %}

{% trans "Supplier Part" %}: {{ part.SKU }}

-{% endblock %} +{% endblock heading %} {% block actions %} {% if user.is_staff and perms.company.change_company %} @@ -43,7 +43,7 @@ {% endif %} -{% endblock %} +{% endblock actions %} {% block thumbnail %} - {{ part.part.full_name }} -

+ + + + + + + + {% if part.description %} + + + + + + {% endif %} +
{% trans "Internal Part" %} + {% if part.part %} + {{ part.part.full_name }}{% include "clip.html"%} + {% endif %} +
{% trans "Description" %}{{ part.description }}{% include "clip.html"%}
-{% endblock %} +{% endblock details %} {% block details_right %} - - - - - - {% if part.description %} - - - - - - {% endif %} - {% if part.link %} - - - - - - {% endif %} @@ -127,6 +120,13 @@ src="{% static 'img/blank_image.png' %}" {% endif %} + {% if part.link %} + + + + + + {% endif %}
{% trans "Internal Part" %} - {% if part.part %} - {{ part.part.full_name }}{% include "clip.html"%} - {% endif %} -
{% trans "Description" %}{{ part.description }}{% include "clip.html"%}
{% trans "External Link" %}{{ part.link }}{% include "clip.html"%}
{% trans "Supplier" %}{{ part.note }}{% include "clip.html"%}
{% trans "External Link" %}{{ part.link }}{% include "clip.html"%}
{% endblock %} 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..f85b16eccb 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:52\n" "Last-Translator: \n" "Language-Team: German\n" "Language: de_DE\n" @@ -33,260 +33,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "Fehlende Datei" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "Fehlender externer Link" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Anhang" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 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:133 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 "Link" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "Link zu einer externen URL" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "Kommentar" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 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 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "Benutzer" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "Hochladedatum" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "Dateiname darf nicht leer sein" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "Ungültiges Verzeichnis für Anhang" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Dateiname enthält ungültiges Zeichen '{c}'" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "Dateiendung fehlt" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "Anhang mit diesem Dateinamen bereits vorhanden" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "Fehler beim Umbenennen" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "Beschreibung" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "Beschreibung (optional)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "Dateiname" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "Deutsch" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "Griechisch" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "Englisch" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "Spanisch" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "Spanisch (Mexikanisch)" + +#: InvenTree/settings.py:675 msgid "French" msgstr "Französisch" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "Hebräisch" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "Italienisch" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "Japanisch" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "Koreanisch" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "Niederländisch" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "Norwegisch" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "Polnisch" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "Portugiesisch" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "Schwedisch" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "Thailändisch" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "Türkisch" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "Vietnamesisch" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "Chinesisch" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "Element löschen" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 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:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "Benutzerinformationen bearbeiten" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Passwort eingeben" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "Passwörter stimmen nicht überein" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "Systeminformationen" @@ -509,15 +539,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 +559,575 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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 "Endprodukt stimmt nicht mit übergeordnetem Bauauftrag überein" + +#: build/serializers.py:150 +msgid "Output part does not match BuildOrder part" +msgstr "Endprodukt entspricht nicht dem Teil des Bauauftrags" + +#: build/serializers.py:154 +msgid "This build output has already been completed" +msgstr "Dieses Endprodukt wurde bereits fertiggestellt" + +#: build/serializers.py:158 +msgid "This build output is not fully allocated" +msgstr "Dieses Endprodukt ist nicht vollständig zugewiesen" + +#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +msgid "Location" +msgstr "Lagerort" + +#: build/serializers.py:191 +msgid "Location for completed build outputs" +msgstr "Lagerort für fertige Endprodukte" + +#: build/serializers.py:197 build/templates/build/build_base.html:129 +#: build/templates/build/detail.html:63 order/models.py:572 +#: order/serializers.py:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +msgid "Status" +msgstr "Status" + #: build/serializers.py:213 +msgid "A list of build outputs must be provided" +msgstr "Eine Liste von Endprodukten muss angegeben werden" + +#: 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 "Endprodukt muss auf den gleichen Bauauftrag verweisen" + +#: build/serializers.py:319 +msgid "bom_item.part must point to the same part as the build order" +msgstr "bom_item.part muss auf dasselbe Teil verweisen wie der Bauauftrag" + +#: build/serializers.py:334 +msgid "Item must be in stock" +msgstr "Teil muss auf Lager sein" + +#: build/serializers.py:348 order/models.py:316 order/serializers.py:233 +#: 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 "" +msgstr "Für Zuweisung von verfolgten Teilen muss ein Endprodukt angegeben sein" -#: build/serializers.py:226 +#: build/serializers.py:403 msgid "Build output cannot be specified for allocation of untracked parts" -msgstr "" +msgstr "Endprodukt kann bei Zuweisung nicht-verfolgter Teile nicht angegeben werden" -#: build/serializers.py:254 +#: build/serializers.py:431 msgid "Allocation items must be provided" -msgstr "" +msgstr "Zuweisungen müssen angegeben werden" -#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "Anhang hinzufügen" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "Anhang bearbeiten" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "Löschvorgang bestätigen" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "Anhang löschen" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "Zuordnung abgeschlossen" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 "Bauauftragdetails" -#: 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 "Ausstehende Einträge" -#: 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 "Abgeschlossene Elemente" #: build/views.py:76 msgid "Build was cancelled" @@ -1449,7 +1380,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 +1392,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 +1404,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 +1412,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" @@ -1537,7 +1448,7 @@ msgstr "Fehler beim Lesen der Datei (falsche Größe)" msgid "Error reading file (data could be corrupted)" msgstr "Fehler beim Lesen der Datei (Daten könnten beschädigt sein)" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "Datei" @@ -1554,728 +1465,728 @@ 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 "Zeige abonnierte Teile auf der Startseite" + +#: 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 "Zeige abonnierte Teilkategorien auf der Startseite" + +#: 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 "" +msgstr "Zeige Stücklisten, die noch nicht validiert sind, auf der Startseite" -#: 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 "" +msgstr "Zeige aufgebrauchte Lagerartikel auf der Startseite" -#: 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" +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 "" +msgstr "Zeige überfällige Lagerartikel auf der Startseite" -#: 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" +msgstr "Zeige ausstehende POs auf der Startseite" -#: 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" +msgstr "Zeige überfällige POs auf der Startseite" -#: 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" +msgstr "Zeige ausstehende SOs auf der Startseite" -#: 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" +msgstr "Zeige überfällige SOs auf der Startseite" -#: 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "Vorheriger Schritt" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "Kontakt-Telefon" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "Email" @@ -2336,19 +2248,11 @@ msgstr "Kontakt" 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 -#: 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 -msgid "Link" -msgstr "Link" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "Wert" @@ -2451,8 +2354,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 +2367,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "Verpackungen" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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" -#: company/templates/company/navbar.html:26 -#: company/templates/company/navbar.html:29 +#: company/templates/company/sidebar.html:10 msgid "Supplied Parts" msgstr "Zuliefererteile" -#: 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 "Zugelieferte Lagerartikel" + +#: company/templates/company/sidebar.html:22 +msgid "Assigned Stock Items" +msgstr "Zugewiesene Lagerartikel" #: 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "Firmen" msgid "New Company" msgstr "Neue Firma" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "Bild herunterladen" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, 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:632 msgid "Supplied URL is not a valid image file" msgstr "Angegebene URL ist kein gültiges Bild" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "Keine korrekten Objekte für Vorlage gegeben" @@ -2994,7 +2886,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,10 +2928,10 @@ 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 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "Filter" @@ -3049,284 +2941,280 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "Kaufpreiswährung" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "Position" -#: order/serializers.py:208 +#: order/serializers.py:210 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:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "Zielort für empfangene Teile auswählen" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "Barcode-Hash" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "Einzigartiger Identifikator" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "Barcode ist bereits in Verwendung" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "Positionen müssen angegeben werden" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "Ziel-Lagerort muss angegeben werden" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" -msgstr "" +msgstr "Barcode muss eindeutig sein" #: order/serializers.py:569 msgid "Sale price currency" @@ -3334,50 +3222,48 @@ 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 +3339,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" @@ -3475,19 +3362,23 @@ msgstr "Zeile" msgid "Select Supplier Part" msgstr "Zulieferer-Teil auswählen" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "Zurück zu Bestellungen" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "Schritt %(step)s von %(count)s" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "Bestellung ist bereits verarbeitet. Dateien können nicht hochgeladen werden." @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "Positionen" @@ -3548,30 +3439,25 @@ msgstr "Neue Bestellung für %(name)s anlegen" msgid "Select a purchase order for %(name)s" 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_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_navbar.html:26 -msgid "Received Stock Items" -msgstr "BestandsObjekte empfangen" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" +msgstr "Empfangene Lagerartikel" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "Empfangene Teile" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "Position hinzufügen" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received Items" +msgstr "Empfangene Teile" + +#: 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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "Muss größer als 0 sein" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "Muss eine gültige Nummer sein" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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" +#: part/templates/part/bom_upload/upload_file.html:8 +msgid "Return to BOM" msgstr "Zurück zur Stückliste" -#: 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 +4262,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 +4398,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" -#: 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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "verknüpftes Teil hinzufügen" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "Testergebnis-Vorlage hinzufügen" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "Teilenotizen bearbeiten" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, 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:1051 #, 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:1063 #, 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:1152 #, python-format msgid "Unit Price - %(currency)s" msgstr "Stückpreis - %(currency)s" #: part/templates/part/import_wizard/ajax_part_upload.html:29 -#: part/templates/part/import_wizard/part_upload.html:51 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "Unzureichende Benutzerrechte." -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "Zurück zu Teilen" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ 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:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +msgstr "Details" + +#: part/templates/part/part_sidebar.html:13 +msgid "Variants" +msgstr "Varianten" + +#: part/templates/part/part_sidebar.html:27 +msgid "Used In" +msgstr "Benutzt in" + +#: part/templates/part/part_sidebar.html:43 +msgid "Test Templates" +msgstr "Testvorlagen" + +#: part/templates/part/part_thumb.html:11 msgid "Select from existing images" msgstr "Aus vorhandenen Bildern auswählen" @@ -4937,7 +4848,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 +4893,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 +4915,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:1788 msgid "Add Internal Price Break" msgstr "Interne Preisspanne hinzufügen" @@ -5024,13 +4935,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,135 +4954,132 @@ 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:502 msgid "None" msgstr "Kein(e)" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "Teil-QR-Code" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "Teilbild auswählen" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "Teilbild aktualisiert" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "Teilbild nicht gefunden" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "Stückliste duplizieren" -#: part/views.py:758 +#: part/views.py:734 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:776 msgid "Confirm that the BOM is valid" msgstr "Bestätigen, dass Stückliste korrekt ist" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "überprüfte Stückliste" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "Teile zuordnen" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "Stückliste exportieren" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "Löschen des Teils bestätigen" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "Teil wurde gelöscht" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "Teilbepreisung" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "Teilparametervorlage anlegen" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "Teilparametervorlage bearbeiten" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "Teilparametervorlage löschen" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "Teil-Kategorie bearbeiten" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "Teil-Kategorie löschen" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "Teil-Kategorie wurde gelöscht" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "Kategorieparametervorlage anlegen" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "Kategorieparametervorlage bearbeiten" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "Kategorieparametervorlage löschen" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "neue Preisstaffel hinzufügt" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "Interne Preisspanne bearbeiten" -#: part/views.py:1818 +#: part/views.py:1805 msgid "Delete Internal Price Break" msgstr "Interne Preisspanne löschen" +#: report/api.py:234 report/api.py:278 +#, python-brace-format +msgid "Template file '{filename}' is missing or does not exist" +msgstr "Vorlagendatei '{filename}' fehlt oder existiert nicht" + #: report/models.py:182 msgid "Template name" msgstr "Vorlagen Name" @@ -5198,7 +5106,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,53 +5114,53 @@ 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 +#: report/models.py:382 msgid "Build Filters" msgstr "Bauauftrag Filter" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "Bau-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "Teil Filter" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "Teile-Abfragefilter (kommagetrennte Liste mit Schlüssel=Wert-Paaren)" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "Bestellungs-Abfragefilter" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "Auftrags-Abfragefilter" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "Snippet" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "Berichts-Snippet" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "Snippet-Beschreibung" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "Ressource" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "Berichts-Ressource" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "Ressource-Beschreibung" @@ -5260,558 +5168,594 @@ 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:83 +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" +msgstr "Seriennummer" + +#: report/templates/report/inventree_test_report_base.html:88 msgid "Test Results" msgstr "Testergebnisse" -#: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "Test" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "Datum" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "bestanden" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "Verbaute Objekte" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +msgstr "Seriennummer" + +#: 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:1276 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:686 +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:556 +msgid "StockItem primary key value" +msgstr "Primärschlüssel Lagerelement" + +#: stock/serializers.py:584 msgid "Stock transaction notes" msgstr "Bestandsbewegungsnotizen" -#: stock/serializers.py:462 +#: stock/serializers.py:594 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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "Testergebnis hinzufügen" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "Testergebnis bearbeiten" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 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 +5764,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 +5803,85 @@ 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 "Lagerartikel-Verfolgung" + +#: stock/templates/stock/stock_sidebar.html:16 +msgid "Child Items" +msgstr "Untergeordnete Objekte" + #: 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 +5893,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:648 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:318 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:298 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 +6012,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 +6092,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,150 +6116,131 @@ 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" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "Bestellungs-Einstellungen" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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 "ID" + +#: 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:12 +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 "Startseite" + +#: 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 "Etikettendruck" + +#: templates/InvenTree/settings/sidebar.html:18 +#: templates/InvenTree/settings/sidebar.html:34 +msgid "Reporting" +msgstr "Berichte" + +#: templates/InvenTree/settings/sidebar.html:23 +msgid "Global Settings" +msgstr "Allgemeine Einstellungen" + +#: templates/InvenTree/settings/sidebar.html:26 +msgid "Server Configuration" +msgstr "Serverkonfiguration" + +#: templates/InvenTree/settings/sidebar.html:32 +msgid "Currencies" +msgstr "Währungen" + +#: templates/InvenTree/settings/sidebar.html:38 +msgid "Categories" +msgstr "Kategorien" + #: templates/InvenTree/settings/so.html:7 msgid "Sales Order Settings" msgstr "Auftrags-Einstellungen" @@ -6361,140 +6249,198 @@ 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/js/translated/helpers.js:26 -msgid "Edit" -msgstr "Bearbeiten" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" +msgstr "Bearbeiten" + +#: templates/InvenTree/settings/user.html:32 msgid "Username" msgstr "Benutzername" -#: templates/InvenTree/settings/user.html:32 +#: templates/InvenTree/settings/user.html:36 msgid "First Name" msgstr "Vorname" -#: templates/InvenTree/settings/user.html:36 +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "Nachname" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" -msgstr "" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" -msgstr "" +msgstr "Verifiziert" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" -msgstr "" +msgstr "Nicht verifiziert" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" -msgstr "" +msgstr "Primär" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" -msgstr "" +msgstr "Als Primär Festlegen" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 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:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" -msgstr "" +msgstr "Entfernen" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 msgid "Warning:" -msgstr "" +msgstr "Warnung:" -#: 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:95 +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:88 -msgid "Add E-mail Address" -msgstr "" +#: templates/InvenTree/settings/user.html:102 +msgid "Add Email Address" +msgstr "E-Mail-Adresse hinzufügen" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" -msgstr "" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" +msgstr "Geben Sie Ihre Email-Adresse ein" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "E-Mail-Adresse hinzufügen" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" -msgstr "" +msgstr "Soziale Konten" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +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:168 msgid "Add a 3rd Party Account" -msgstr "" +msgstr "Drittanbieter-Konto hinzufügen" -#: templates/InvenTree/settings/user.html:153 +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" +msgstr "Aktive Sitzungen" + +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" +msgstr "Aktive Sitzungen abmelden (ausgenommen diese)" + +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "Aktive Sitzungen abmelden" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "unbekannt auf unbekanntem" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" +msgstr "unbekannt" + +#: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "IP Adresse" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "Gerät" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "Letzte Aktivität" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "%(time)s vor (diese Sitzung)" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "%(time)s vor" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:25 msgid "Theme Settings" msgstr "Anzeige-Einstellungen" -#: templates/InvenTree/settings/user.html:174 +#: 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.html:181 +#: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "Spracheinstellung" -#: templates/InvenTree/settings/user.html:200 +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "Sprache festlegen" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "%(lang_translated)s%% übersetzt" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "Keine Übersetzungen verfügbar" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "Sprache festlegen" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "Einige Sprachen sind nicht vollständig übersetzt" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "Zeige nur ausreichende" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "und versteckt." + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "Auch unvollständige anzeigen" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "Hilf bei der Übersetzung!" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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_forms.html:9 -msgid "Form Settings" -msgstr "Formulareinstellungen" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "Startseite-Einstellungen" @@ -6503,181 +6449,269 @@ 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/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "Link hinzufügen" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +msgstr "Anhang hinzufügen" + +#: 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" @@ -6695,431 +6729,441 @@ msgstr "Der angegebene Server muss erreichbar sein" msgid "Remote image must not exceed maximum allowable file size" 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" - -#: templates/js/report.js:55 templates/js/translated/report.js:75 -msgid "Select Report Template" -msgstr "Bericht-Vorlage auswählen" - -#: templates/js/report.js:70 templates/js/translated/report.js:90 -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 -msgid "Select Stock Items" -msgstr "BestandsObjekte 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" - -#: 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 "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" - -#: templates/js/report.js:152 templates/js/translated/report.js:172 -msgid "Select Builds" -msgstr "Bauauftrag auswählen" - -#: templates/js/report.js:153 templates/js/translated/report.js:173 -msgid "Build(s) must be selected before printing reports" -msgstr "Bauauftrag muss vor dem Berichtsdruck ausgewählt werden" - -#: templates/js/report.js:170 templates/js/translated/report.js:190 -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/translated/label.js:134 templates/js/translated/report.js:225 -msgid "Select Parts" -msgstr "Teile auswählen" - -#: templates/js/report.js:206 templates/js/translated/report.js:226 -msgid "Part(s) must be selected before printing reports" -msgstr "Teil muss vor dem Berichtsdruck ausgewählt werden" - -#: templates/js/report.js:224 templates/js/translated/report.js:244 -msgid "No report templates found which match selected part(s)" -msgstr "Keine Berichtvorlagen für ausgewählte Teile gefunden" - -#: templates/js/report.js:259 templates/js/translated/report.js:279 -msgid "Select Purchase Orders" -msgstr "Bestellungen auswählen" - -#: templates/js/report.js:260 templates/js/translated/report.js:280 -msgid "Purchase Order(s) must be selected before printing report" -msgstr "Bestellung muss vor dem Berichtsdruck ausgewählt werden" - -#: 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 "Keine Berichtvorlagen für ausgewählte Bestellungen gefunden" - -#: templates/js/report.js:313 templates/js/translated/report.js:333 -msgid "Select Sales Orders" -msgstr "Aufträge auswählen" - -#: templates/js/report.js:314 templates/js/translated/report.js:334 -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:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "Fehler 400: Fehlerhafte Anfrage" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "Unbehandelter Fehler-Code" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "Fehler-Code" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "Keine Anhänge gefunden" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "Anhang bearbeiten" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "Löschen bestätigen" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "Anhang löschen" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "Hochladedatum" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "Anhang bearbeiten" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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 "Wählen Sie eine neue Variante aus und fügen Sie sie mit den folgenden Eingaben hinzu" + +#: 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:1320 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:1194 +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:1327 +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:1328 +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:1557 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:1611 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:1604 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:1333 templates/js/translated/label.js:134 +#: templates/js/translated/report.js:225 +msgid "Select Parts" +msgstr "Teile auswählen" + +#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7171,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 +7183,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 +7281,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "Aktion verboten" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "Erstellvorgang nicht erlaubt" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "Updatevorgang nicht erlaubt" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "Löschvorgang nicht erlaubt" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "Gib eine gültige Nummer ein" + +#: templates/js/translated/forms.js:1072 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:1463 msgid "No results found" msgstr "Keine Ergebnisse gefunden" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "Suche" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "Eingabe leeren" @@ -7299,9 +7347,14 @@ msgstr "JA" msgid "NO" msgstr "NEIN" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "Lagerartikel auswählen" + #: 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 +7363,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 +7387,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 +7397,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 +7460,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 +7500,710 @@ 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:423 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:424 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:1673 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:1063 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:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "Position bearbeiten" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "Position löschen" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 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:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "Gesamtpreis" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "Position bearbeiten" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "Position löschen" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "Position empfangen" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "Keine Aufträge gefunden" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "Ungültiger Kunde" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 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:1248 msgid "Edit Stock Allocation" msgstr "Bestandszuordnung bearbeiten" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "Löschvorgang bestätigen" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "Bestands-Zuordnung löschen" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "Lagerstandort nicht angegeben" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "Erledigt" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "Seriennummern zuweisen" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 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:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "Preis berechnen" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "Position löschen " -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" -msgstr "Lagerbestand zuweisen" +msgstr "Bestand zuweisen" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "Stückpreis aktualisieren" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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 "Teile-Beziehung löschen" + +#: templates/js/translated/part.js:789 +msgid "Delete Part Relationship" +msgstr "Teile-Beziehung löschen" + +#: 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:1832 +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:1851 +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:1895 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:816 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:817 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/report.js:67 +msgid "items selected" +msgstr "Lagerartikel ausgewählt" + +#: templates/js/translated/report.js:75 +msgid "Select Report Template" +msgstr "Bericht-Vorlage auswählen" + +#: templates/js/translated/report.js:90 +msgid "Select Test Report Template" +msgstr "Test-Bericht-Vorlage auswählen" + +#: templates/js/translated/report.js:119 +msgid "Stock item(s) must be selected before printing reports" +msgstr "Lagerartikel müssen vor dem Berichtsdruck ausgewählt werden" + +#: 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 "Keine Berichte gefunden" + +#: templates/js/translated/report.js:137 +msgid "No report templates found which match selected stock item(s)" +msgstr "Keine Berichtsvorlagen für ausgewählte Lagerartikel gefunden" + +#: templates/js/translated/report.js:172 +msgid "Select Builds" +msgstr "Bauauftrag auswählen" + +#: templates/js/translated/report.js:173 +msgid "Build(s) must be selected before printing reports" +msgstr "Bauauftrag muss vor dem Berichtsdruck ausgewählt werden" + +#: templates/js/translated/report.js:190 +msgid "No report templates found which match selected build(s)" +msgstr "Keine Berichtvorlagen für ausgewählten Bauauftrag gefunden" + +#: templates/js/translated/report.js:226 +msgid "Part(s) must be selected before printing reports" +msgstr "Teil muss vor dem Berichtsdruck ausgewählt werden" + +#: templates/js/translated/report.js:244 +msgid "No report templates found which match selected part(s)" +msgstr "Keine Berichtvorlagen für ausgewählte Teile gefunden" + +#: templates/js/translated/report.js:279 +msgid "Select Purchase Orders" +msgstr "Bestellungen auswählen" + +#: templates/js/translated/report.js:280 +msgid "Purchase Order(s) must be selected before printing report" +msgstr "Bestellung muss vor dem Berichtsdruck ausgewählt werden" + +#: templates/js/translated/report.js:298 templates/js/translated/report.js:352 +msgid "No report templates found which match selected orders" +msgstr "Keine Berichtvorlagen für ausgewählte Bestellungen gefunden" + +#: templates/js/translated/report.js:333 +msgid "Select Sales Orders" +msgstr "Aufträge auswählen" + +#: templates/js/translated/report.js:334 +msgid "Sales Order(s) must be selected before printing report" +msgstr "Auftrag muss vor dem Berichtsdruck ausgewählt werden" + +#: templates/js/translated/stock.js:70 +msgid "Serialize Stock Item" +msgstr "Lagerartikel serialisieren" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "Nächste verfügbare Seriennummer" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" +msgstr "Letzte Seriennummer" + +#: templates/js/translated/stock.js:104 msgid "Parent stock location" msgstr "Übergeordneter Lagerort" -#: templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "Neuer Lagerstandort" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "Dieser Teil kann nicht serialisiert werden" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "Ausgangsmenge für diesen Lagerartikel eingeben" + +#: templates/js/translated/stock.js:225 +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:368 +msgid "Created new stock item" +msgstr "Neuer Lagerartikel erstellt" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "Mehrere Lagerartikel erstellt" + +#: templates/js/translated/stock.js:420 msgid "Export Stock" msgstr "Bestand exportieren" -#: templates/js/translated/stock.js:104 +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "Einschließlich Unterstandorte" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 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:474 msgid "Transfer Stock" msgstr "Bestand verschieben" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "Verschieben" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "Bestand zählen" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "Anzahl" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "Bestand entfernen" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "Entfernen" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "Bestand hinzufügen" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 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:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "Bestand löschen" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 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:585 msgid "Specify stock quantity" msgstr "Bestandsanzahl angeben" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 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:783 msgid "PASS" msgstr "ERFOLGREICH" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "FEHLGESCHLAGEN" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "KEIN ERGEBNIS" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "Testergebnis hinzufügen" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "Keine Testergebnisse gefunden" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "Testdatum" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "In Arbeit" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" -msgstr "In BestandsObjekt installiert" +msgstr "In Lagerartikel installiert" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "an Kunde versand" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "Auftrag zugewiesen" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "Kein Lagerort gesetzt" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 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:1183 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:1186 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:1190 msgid "Stock item has expired" -msgstr "BestandsObjekt ist abgelaufen" +msgstr "Lagerartikel ist abgelaufen" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 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:1196 msgid "Stock item has been allocated" -msgstr "BestandsObjekt zugewiesen" +msgstr "Lagerartikel zugewiesen" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 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:1207 msgid "Stock item has been rejected" -msgstr "BestandsObjekt abgewiesen" +msgstr "Lagerartikel abgewiesen" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" -msgstr "BestandsObjekt verloren" +msgstr "Lagerartikel verloren" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 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:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "gelöscht" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "Inventur" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "Zuliefererteil nicht angegeben" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 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:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "Teile" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "lose" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "Lagerorte" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "unbekannter Lagerort" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "Status setzen" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "Status Code setzen" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "Status Code muss ausgewählt werden" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "Ungültiges Datum" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "Standort nicht mehr vorhanden" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "Bestellung existiert nicht mehr" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "Kunde existiert nicht mehr" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 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:2053 msgid "Added" msgstr "Hinzugefügt" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "Entfernt" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "Tracking-Eintrag bearbeiten" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "Tracking-Eintrag löschen" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "Keine installierten Elemente" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "Seriennummer" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" -msgstr "Lagerbestand entfernen" +msgstr "Lagerartikel entfernen" #: templates/js/translated/table_filters.js:56 msgid "Trackable Part" @@ -8025,265 +8221,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 +8548,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 +8627,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..2c99640814 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:52\n" "Last-Translator: \n" "Language-Team: Greek\n" "Language: el_GR\n" @@ -33,260 +33,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 msgid "File comment" msgstr "" -#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055 -#: common/models.py:1056 part/models.py:2055 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "" @@ -2336,19 +2248,11 @@ msgstr "" 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 -#: 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 -msgid "Link" -msgstr "" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..11cca2ebb9 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-30 21:49+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -34,250 +34,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 msgid "File comment" msgstr "" -#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:993 -#: common/models.py:994 part/models.py:2051 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1690 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "" -#: InvenTree/settings.py:523 +#: InvenTree/settings.py:670 msgid "German" msgstr "" -#: InvenTree/settings.py:524 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "" -#: InvenTree/settings.py:525 +#: InvenTree/settings.py:672 msgid "English" msgstr "" -#: InvenTree/settings.py:526 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:527 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "" -#: InvenTree/settings.py:528 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "" @@ -293,196 +333,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:538 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:659 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:674 templates/InvenTree/settings/user.html:14 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:685 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:704 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:910 templates/navbar.html:105 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "" @@ -526,589 +566,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1176,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" +#: build/templates/build/detail.html:477 +msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:376 -#: 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 -msgid "Edit Attachment" +#: build/templates/build/detail.html:478 +msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/detail.html:383 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:384 -#: 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 -msgid "Delete Attachment" -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 "" @@ -1385,170 +1345,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 "" @@ -1569,7 +1449,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1586,656 +1466,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2247,292 +2199,282 @@ 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:47 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 -#: 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 -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:874 +#: 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 -#: 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 +#: company/models.py:422 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 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:861 +#: 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:1366 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 +2485,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:1073 +#: templates/js/translated/stock.js:2002 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 +2626,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2858,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2955,7 +2887,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3000,7 +2932,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3012,349 +2944,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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:201 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:207 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:217 order/serializers.py:276 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:234 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:235 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:250 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:289 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:299 +#: order/serializers.py:317 +msgid "Destination location must be specified" +msgstr "" + +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:514 +#: order/serializers.py:569 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 +3340,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 "" @@ -3448,19 +3363,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3503,7 +3422,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:1119 msgid "Items" msgstr "" @@ -3521,104 +3440,73 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:38 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 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:50 +msgid "Received 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:1086 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 +3521,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 +3549,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3737,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 +3761,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:1134 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:858 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 +4230,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 +4263,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 +4399,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,313 +4428,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 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:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:936 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:948 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:960 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1049 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4772,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 +4806,61 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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: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 +4893,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 +4915,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5152,12 +4935,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,135 +4954,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:303 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5335,51 +5116,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5387,578 +5168,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1807 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1813 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 msgid "Fail" msgstr "" -#: stock/api.py:146 -msgid "Request must contain list of stock items" +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" msgstr "" -#: stock/api.py:154 -msgid "Improperly formatted data" +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" msgstr "" -#: stock/api.py:162 -msgid "Each entry must contain a valid integer primary-key" +#: stock/api.py:422 +msgid "Quantity is required" 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:1276 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:686 +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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -6012,107 +5803,78 @@ 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" -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: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:932 +#: stock/templates/stock/stockitem_convert.html:7 stock/views.py:912 msgid "Convert Stock Item" msgstr "" @@ -6133,104 +5895,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:648 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:318 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:298 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 +6012,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 +6092,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,132 +6116,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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,66 +6249,194 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:9 -msgid "Account Settings" +#: templates/InvenTree/settings/user.html:18 +#: 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:15 +#: templates/InvenTree/settings/user.html:22 #: templates/js/translated/helpers.js:26 msgid "Edit" msgstr "" -#: templates/InvenTree/settings/user.html:17 -msgid "Change Password" -msgstr "" - -#: templates/InvenTree/settings/user.html:24 -#: templates/registration/login.html:58 +#: templates/InvenTree/settings/user.html:32 msgid "Username" msgstr "" -#: templates/InvenTree/settings/user.html:28 +#: templates/InvenTree/settings/user.html:36 msgid "First Name" msgstr "" -#: templates/InvenTree/settings/user.html:32 +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:36 -msgid "Email Address" +#: templates/InvenTree/settings/user.html:55 +msgid "The following email addresses are associated with your account:" msgstr "" -#: templates/InvenTree/settings/user.html:42 +#: templates/InvenTree/settings/user.html:75 +msgid "Verified" +msgstr "" + +#: templates/InvenTree/settings/user.html:77 +msgid "Unverified" +msgstr "" + +#: templates/InvenTree/settings/user.html:79 +msgid "Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:85 +msgid "Make Primary" +msgstr "" + +#: templates/InvenTree/settings/user.html:86 +msgid "Re-send Verification" +msgstr "" + +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 +msgid "Remove" +msgstr "" + +#: templates/InvenTree/settings/user.html:94 +msgid "Warning:" +msgstr "" + +#: templates/InvenTree/settings/user.html:95 +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:102 +msgid "Add Email Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" +msgstr "" + +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 +msgid "Social Accounts" +msgstr "" + +#: templates/InvenTree/settings/user.html:129 +msgid "You can sign in to your account using any of the following third party accounts:" +msgstr "" + +#: templates/InvenTree/settings/user.html:163 +msgid "There are no social network accounts connected to your InvenTree account" +msgstr "" + +#: templates/InvenTree/settings/user.html:168 +msgid "Add a 3rd Party Account" +msgstr "" + +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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.html:63 +#: 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.html:70 +#: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "" -#: templates/InvenTree/settings/user.html:89 +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:91 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:98 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:103 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:104 +#: templates/InvenTree/settings/user_display.html:102 #, python-format msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." msgstr "" @@ -6568,83 +6449,270 @@ 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/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 @@ -6663,365 +6731,441 @@ 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" +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034 +msgid "No Response" msgstr "" -#: templates/js/report.js:55 templates/js/translated/report.js:75 -msgid "Select Report Template" +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035 +msgid "No response from the InvenTree server" msgstr "" -#: templates/js/report.js:70 templates/js/translated/report.js:90 -msgid "Select Test Report Template" +#: templates/js/translated/api.js:192 +msgid "Error 400: Bad request" msgstr "" -#: templates/js/report.js:98 templates/js/translated/label.js:29 -#: templates/js/translated/report.js:118 templates/js/translated/stock.js:313 -msgid "Select Stock Items" +#: templates/js/translated/api.js:193 +msgid "API request returned error code 400" msgstr "" -#: templates/js/report.js:99 templates/js/translated/report.js:119 -msgid "Stock item(s) must be selected before printing reports" +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044 +msgid "Error 401: Not Authenticated" 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" +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045 +msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/report.js:117 templates/js/translated/report.js:137 -msgid "No report templates found which match selected stock item(s)" +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049 +msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/report.js:152 templates/js/translated/report.js:172 -msgid "Select Builds" +#: templates/js/translated/api.js:203 templates/js/translated/modals.js:1050 +msgid "You do not have the required permissions to access this function" msgstr "" -#: templates/js/report.js:153 templates/js/translated/report.js:173 -msgid "Build(s) must be selected before printing reports" +#: templates/js/translated/api.js:207 templates/js/translated/modals.js:1054 +msgid "Error 404: Resource Not Found" msgstr "" -#: templates/js/report.js:170 templates/js/translated/report.js:190 -msgid "No report templates found which match selected build(s)" +#: templates/js/translated/api.js:208 templates/js/translated/modals.js:1055 +msgid "The requested resource could not be located on the server" msgstr "" -#: templates/js/report.js:205 templates/js/translated/label.js:134 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059 +msgid "Error 408: Timeout" +msgstr "" + +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060 +msgid "Connection timeout while requesting data from server" +msgstr "" + +#: templates/js/translated/api.js:216 +msgid "Unhandled Error Code" +msgstr "" + +#: templates/js/translated/api.js:217 +msgid "Error code" +msgstr "" + +#: templates/js/translated/attachment.js:76 +msgid "No attachments found" +msgstr "" + +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 +msgid "Upload Date" +msgstr "" + +#: templates/js/translated/attachment.js:178 +msgid "Edit attachment" +msgstr "" + +#: templates/js/translated/attachment.js:185 +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:600 +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:1320 +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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 +msgid "Allocated" +msgstr "" + +#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611 +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:1604 +msgid "Allocate stock" +msgstr "" + +#: templates/js/translated/build.js:1262 +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/report.js:206 templates/js/translated/report.js:226 -msgid "Part(s) must be selected before printing reports" +#: templates/js/translated/build.js:1334 +msgid "You must select at least one part to allocate" msgstr "" -#: templates/js/report.js:224 templates/js/translated/report.js:244 -msgid "No report templates found which match selected part(s)" +#: templates/js/translated/build.js:1348 +msgid "Select source location (leave blank to take from all locations)" msgstr "" -#: templates/js/report.js:259 templates/js/translated/report.js:279 -msgid "Select Purchase Orders" +#: templates/js/translated/build.js:1377 +msgid "Confirm stock allocation" msgstr "" -#: templates/js/report.js:260 templates/js/translated/report.js:280 -msgid "Purchase Order(s) must be selected before printing report" +#: templates/js/translated/build.js:1378 +msgid "Allocate Stock Items to Build Order" 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" +#: templates/js/translated/build.js:1389 +msgid "No matching stock locations" msgstr "" -#: templates/js/report.js:313 templates/js/translated/report.js:333 -msgid "Select Sales Orders" +#: templates/js/translated/build.js:1451 +msgid "No matching stock items" 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:174 templates/js/translated/modals.js:1041 -msgid "No Response" -msgstr "" - -#: templates/js/translated/api.js:175 templates/js/translated/modals.js:1042 -msgid "No response from the InvenTree server" -msgstr "" - -#: templates/js/translated/api.js:181 -msgid "Error 400: Bad request" -msgstr "" - -#: templates/js/translated/api.js:182 -msgid "API request returned error code 400" -msgstr "" - -#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1051 -msgid "Error 401: Not Authenticated" -msgstr "" - -#: templates/js/translated/api.js:187 templates/js/translated/modals.js:1052 -msgid "Authentication credentials not supplied" -msgstr "" - -#: templates/js/translated/api.js:191 templates/js/translated/modals.js:1056 -msgid "Error 403: Permission Denied" -msgstr "" - -#: templates/js/translated/api.js:192 templates/js/translated/modals.js:1057 -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 -msgid "Error 404: Resource Not Found" -msgstr "" - -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1062 -msgid "The requested resource could not be located on the server" -msgstr "" - -#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1066 -msgid "Error 408: Timeout" -msgstr "" - -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1067 -msgid "Connection timeout while requesting data from server" -msgstr "" - -#: templates/js/translated/api.js:205 -msgid "Unhandled Error Code" -msgstr "" - -#: templates/js/translated/api.js:206 -msgid "Error code" -msgstr "" - -#: templates/js/translated/attachment.js:27 -msgid "No attachments found" -msgstr "" - -#: templates/js/translated/attachment.js:91 -msgid "Upload Date" -msgstr "" - -#: templates/js/translated/attachment.js:104 -msgid "Edit attachment" -msgstr "" - -#: templates/js/translated/attachment.js:111 -msgid "Delete attachment" -msgstr "" - -#: templates/js/translated/barcode.js:30 -msgid "Scan barcode data here using wedge scanner" -msgstr "" - -#: templates/js/translated/barcode.js:32 -msgid "Enter barcode data" -msgstr "" - -#: templates/js/translated/barcode.js:36 -msgid "Barcode" -msgstr "" - -#: templates/js/translated/barcode.js:54 -msgid "Enter optional notes for stock transfer" -msgstr "" - -#: templates/js/translated/barcode.js:55 -msgid "Enter notes" -msgstr "" - -#: templates/js/translated/barcode.js:93 -msgid "Server error" -msgstr "" - -#: templates/js/translated/barcode.js:114 -msgid "Unknown response from server" -msgstr "" - -#: templates/js/translated/barcode.js:141 -#: templates/js/translated/modals.js:1031 -msgid "Invalid server response" -msgstr "" - -#: templates/js/translated/barcode.js:234 -msgid "Scan barcode data below" -msgstr "" - -#: templates/js/translated/barcode.js:281 templates/navbar.html:65 -msgid "Scan Barcode" -msgstr "" - -#: templates/js/translated/barcode.js:292 -msgid "No URL in response" -msgstr "" - -#: templates/js/translated/barcode.js:310 -msgid "Link Barcode to Stock Item" -msgstr "" - -#: templates/js/translated/barcode.js:333 -msgid "This will remove the association between this stock item and the barcode" -msgstr "" - -#: templates/js/translated/barcode.js:339 -msgid "Unlink" -msgstr "" - -#: templates/js/translated/barcode.js:398 templates/js/translated/stock.js:289 -msgid "Remove stock item" -msgstr "" - -#: templates/js/translated/barcode.js:440 -msgid "Check Stock Items into Location" -msgstr "" - -#: templates/js/translated/barcode.js:444 -#: templates/js/translated/barcode.js:571 -msgid "Check In" -msgstr "" - -#: templates/js/translated/barcode.js:486 -#: templates/js/translated/barcode.js:610 -msgid "Error transferring stock" -msgstr "" - -#: templates/js/translated/barcode.js:505 -msgid "Stock Item already scanned" -msgstr "" - -#: templates/js/translated/barcode.js:509 -msgid "Stock Item already in this location" -msgstr "" - -#: templates/js/translated/barcode.js:516 -msgid "Added stock item" -msgstr "" - -#: templates/js/translated/barcode.js:523 -msgid "Barcode does not match Stock Item" -msgstr "" - -#: templates/js/translated/barcode.js:566 -msgid "Check Into Location" -msgstr "" - -#: templates/js/translated/barcode.js:629 -msgid "Barcode does not match a valid location" -msgstr "" - -#: templates/js/translated/bom.js:215 templates/js/translated/build.js:1169 -msgid "Open subassembly" -msgstr "" - -#: templates/js/translated/bom.js:287 -msgid "Purchase Price Range" -msgstr "" - -#: templates/js/translated/bom.js:294 -msgid "Purchase Price Average" -msgstr "" - -#: templates/js/translated/bom.js:342 templates/js/translated/bom.js:428 -msgid "View BOM" -msgstr "" - -#: templates/js/translated/bom.js:402 -msgid "Validate BOM Item" -msgstr "" - -#: templates/js/translated/bom.js:404 -msgid "This line has been validated" -msgstr "" - -#: templates/js/translated/bom.js:406 templates/js/translated/bom.js:569 -msgid "Edit BOM Item" -msgstr "" - -#: templates/js/translated/bom.js:408 templates/js/translated/bom.js:554 -msgid "Delete BOM Item" -msgstr "" - -#: templates/js/translated/bom.js:499 templates/js/translated/build.js:483 -#: templates/js/translated/build.js:1267 -msgid "No BOM items found" -msgstr "" - -#: templates/js/translated/build.js:69 -msgid "Edit Build Order" -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 -msgid "Required Part" -msgstr "" - -#: templates/js/translated/build.js:723 -msgid "Quantity Per" -msgstr "" - -#: templates/js/translated/build.js:793 templates/js/translated/build.js:1231 -#: templates/stock_table.html:59 -msgid "Order stock" -msgstr "" - -#: templates/js/translated/build.js:846 +#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7173,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 +7185,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 +7283,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1379 +#: templates/js/translated/forms.js:1463 +msgid "No results found" +msgstr "" + +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1593 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7197,6 +7349,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7242,62 +7399,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 +7462,748 @@ 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:423 +msgid "Format" +msgstr "" + +#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424 +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:1673 +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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:452 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 +msgid "Edit Line Item" +msgstr "" + +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 +msgid "Delete Line Item" +msgstr "" + +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:617 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 +msgid "Total" +msgstr "" + +#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492 +#: templates/js/translated/part.js:1594 templates/js/translated/part.js:1805 +msgid "Unit Price" +msgstr "" + +#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508 +msgid "Total Price" +msgstr "" + +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 +msgid "Edit line item" +msgstr "" + +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:621 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:658 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:696 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:774 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/part.js:49 +#: templates/js/translated/order.js:1248 +msgid "Edit Stock Allocation" +msgstr "" + +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 +msgid "Delete Stock Allocation" +msgstr "" + +#: templates/js/translated/order.js:1308 +msgid "Stock location not specified" +msgstr "" + +#: templates/js/translated/order.js:1557 +msgid "Fulfilled" +msgstr "" + +#: templates/js/translated/order.js:1601 +msgid "Allocate serial numbers" +msgstr "" + +#: templates/js/translated/order.js:1607 +msgid "Purchase stock" +msgstr "" + +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 +msgid "Calculate price" +msgstr "" + +#: templates/js/translated/order.js:1618 +msgid "Delete line item " +msgstr "" + +#: templates/js/translated/order.js:1741 +msgid "Allocate Stock Item" +msgstr "" + +#: templates/js/translated/order.js:1801 +msgid "Update Unit Price" +msgstr "" + +#: templates/js/translated/order.js:1815 +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:1832 +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:1851 +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:1895 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:816 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:817 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/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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/stock.js:104 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:96 -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 -msgid "Include Sublocations" -msgstr "" - -#: templates/js/translated/stock.js:125 -msgid "Include stock items in sublocations" -msgstr "" - -#: templates/js/translated/stock.js:167 -msgid "Transfer Stock" -msgstr "" - -#: templates/js/translated/stock.js:168 -msgid "Move" -msgstr "" - -#: templates/js/translated/stock.js:174 -msgid "Count Stock" -msgstr "" - -#: templates/js/translated/stock.js:175 -msgid "Count" -msgstr "" - -#: templates/js/translated/stock.js:179 -msgid "Remove Stock" +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" msgstr "" #: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 +msgid "Include Sublocations" +msgstr "" + +#: templates/js/translated/stock.js:432 +msgid "Include stock items in sublocations" +msgstr "" + +#: templates/js/translated/stock.js:474 +msgid "Transfer Stock" +msgstr "" + +#: templates/js/translated/stock.js:475 +msgid "Move" +msgstr "" + +#: templates/js/translated/stock.js:481 +msgid "Count Stock" +msgstr "" + +#: templates/js/translated/stock.js:482 +msgid "Count" +msgstr "" + +#: templates/js/translated/stock.js:486 +msgid "Remove Stock" +msgstr "" + +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:184 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:185 users/models.py:190 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:189 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:278 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:278 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:314 +#: templates/js/translated/stock.js:625 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:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:479 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:484 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:510 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:536 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:584 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:691 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:695 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:703 +#: templates/js/translated/stock.js:1010 +msgid "Shipped to customer" +msgstr "" + +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:1020 +msgid "No stock location set" +msgstr "" + +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:870 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:879 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:883 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:887 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:894 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:896 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:898 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:902 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:956 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1029 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1067 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1088 templates/js/translated/stock.js:1136 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1176 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1203 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1205 +#: templates/js/translated/stock.js:1514 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:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1393 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1394 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1533 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1580 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1599 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1618 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1636 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1659 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1667 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1708 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1709 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1833 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1856 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1884 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -7798,324 +8223,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 +8549,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 +8629,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..db90b2d66d 100644 --- a/InvenTree/locale/es/LC_MESSAGES/django.po +++ b/InvenTree/locale/es/LC_MESSAGES/django.po @@ -2,28 +2,28 @@ 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:52\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 "Endpoint de API no encontrado" #: InvenTree/api.py:110 msgid "No action specified" -msgstr "No se especificó ninguna acción" +msgstr "Ninguna acción especificada" #: InvenTree/api.py:124 msgid "No matching action found" @@ -31,1103 +31,1103 @@ msgstr "No se encontró ninguna acción coincidente" #: InvenTree/fields.py:100 msgid "Enter date" -msgstr "Ingrese la fecha" +msgstr "Ingrese fecha" -#: 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:595 msgid "Confirm" msgstr "Confirmar" -#: InvenTree/forms.py:132 +#: InvenTree/forms.py:136 msgid "Confirm delete" msgstr "Confirmar eliminación" -#: InvenTree/forms.py:133 +#: InvenTree/forms.py:137 msgid "Confirm item deletion" msgstr "Confirmar borrado de artículo" -#: InvenTree/forms.py:164 +#: InvenTree/forms.py:168 msgid "Enter password" -msgstr "Introduzca contraseña" +msgstr "Ingrese contraseña" -#: InvenTree/forms.py:165 +#: InvenTree/forms.py:169 msgid "Enter new password" -msgstr "Ingrese su nueva contraseña" +msgstr "Ingrese nueva contraseña" -#: InvenTree/forms.py:172 +#: InvenTree/forms.py:176 msgid "Confirm password" -msgstr "Confirmar la contraseña" +msgstr "Confirmar contraseña" -#: InvenTree/forms.py:173 +#: InvenTree/forms.py:177 msgid "Confirm new password" -msgstr "Confirmar contraseña nueva" +msgstr "Confirmar nueva contraseña" -#: 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" -msgstr "" +msgid "Email (again)" +msgstr "Email (de nuevo)" -#: InvenTree/forms.py:250 +#: InvenTree/forms.py:234 +msgid "Email address confirmation" +msgstr "Confirmación de email" + +#: InvenTree/forms.py:254 msgid "You must type the same email each time." -msgstr "" +msgstr "Debe escribir el mismo correo electrónico cada vez." -#: InvenTree/helpers.py:401 +#: InvenTree/helpers.py:430 #, python-brace-format msgid "Duplicate serial: {n}" -msgstr "Número de serie duplicado: {n}" +msgstr "Duplicar 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 "Cantidad proporcionada no válida" -#: InvenTree/helpers.py:411 +#: InvenTree/helpers.py:440 msgid "Empty serial number string" -msgstr "No se ha proporcionado un número de serie" +msgstr "Cadena de número de serie vacía" -#: 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 "Grupo inválido: {g}" -#: InvenTree/helpers.py:469 +#: InvenTree/helpers.py:498 #, python-brace-format msgid "Duplicate serial: {g}" -msgstr "Número de serie duplicado: {g}" +msgstr "Serie duplicada: {g}" -#: InvenTree/helpers.py:477 +#: InvenTree/helpers.py:506 msgid "No serial numbers found" -msgstr "Numeros de serie no encontrados" +msgstr "No se encontraron números de serie" -#: 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 "Número único de número de serie ({s}) debe coincidir con la cantidad ({q})" -#: InvenTree/models.py:66 stock/models.py:1823 +#: InvenTree/models.py:114 +msgid "Missing file" +msgstr "Falta archivo" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "Falta enlace externo" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" -msgstr "Archivo adjunto" +msgstr "Adjunto" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" -msgstr "Seleccionar archivo para adjuntar" +msgstr "Seleccionar archivo a adjuntar" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "Enlace" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "Enlace a URL externa" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "Comentario" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 msgid "File comment" -msgstr "Comentario del archivo" +msgstr "Comentario de archivo" -#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055 -#: common/models.py:1056 part/models.py:2055 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "Usuario" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "fecha de subida" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "El nombre del archivo no debe estar vacío" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" -msgstr "Directorio de archivos adjuntos no válido" +msgstr "Directorio adjunto inválido" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" -msgstr "El nombre del archivo contiene el carácter ilegal '{c}'" +msgstr "El nombre de archivo contiene caracteres no válidos '{c}'" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" -msgstr "Falta el nombre de extensión del archivo" +msgstr "Falta extensión del nombre de archivo" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" -msgstr "Ya existe un archivo adjunto con este nombre" +msgstr "Ya existe un adjunto con este nombre de archivo" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" -msgstr "Error al cambiar el nombre del archivo" +msgstr "Error renombrando archivo" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 msgid "Invalid choice" -msgstr "Selección no válida" +msgstr "Elección no válida" -#: 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:271 InvenTree/models.py:272 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:1877 msgid "Name" msgstr "Nombre" -#: 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "Descripción" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "Descripción (opcional)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 msgid "parent" -msgstr "padre" +msgstr "principal" -#: 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 "Debe ser un número válido" -#: InvenTree/serializers.py:244 +#: InvenTree/serializers.py:285 msgid "Filename" -msgstr "Nombre de Archivo" +msgstr "Nombre de archivo" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "Alemán" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "Griego" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "Inglés" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "Español" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "Español (México)" + +#: InvenTree/settings.py:675 msgid "French" -msgstr "Francés" +msgstr "" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" -msgstr "Hebreo" +msgstr "" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" -msgstr "Italiano" +msgstr "" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" -msgstr "Japonés" +msgstr "" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" -msgstr "Coreano" +msgstr "" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" -msgstr "Holandés" +msgstr "" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" -msgstr "Noruego" +msgstr "" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" -msgstr "Polaco" +msgstr "" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" -msgstr "Ruso" +msgstr "" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" -msgstr "Sueco" +msgstr "" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" -msgstr "Tailandés" +msgstr "" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" -msgstr "Turco" +msgstr "" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" -msgstr "Vietnamita" +msgstr "" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 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 "Separar del artículo principal" #: 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:538 msgid "Delete Item" -msgstr "Eliminar elemento" +msgstr "" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 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:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" -msgstr "Editar datos del usuario" +msgstr "" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" -msgstr "Configurar Contraseña" +msgstr "" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 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:883 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 +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 "Opción no válida para el armado principal" -#: 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:886 templates/js/translated/order.js:1473 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 "" +msgstr "Armado Principal" -#: 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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" -#: 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" +msgstr "Número de elementos de stock a construir" -#: build/models.py:253 +#: build/models.py:271 msgid "Completed items" msgstr "Elementos completados" -#: build/models.py:255 +#: build/models.py:273 msgid "Number of stock items which have been completed" -msgstr "Número de productos en stock que se han completado" +msgstr "Número de artículos de stock que han sido completados" -#: 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 "Estado de la construcción" +msgstr "" -#: build/models.py:263 +#: build/models.py:281 msgid "Build status code" -msgstr "Código de estado de construcción" +msgstr "" -#: build/models.py:267 stock/models.py:513 +#: build/models.py:285 stock/models.py:544 msgid "Batch Code" -msgstr "Numero de lote" +msgstr "" -#: build/models.py:271 +#: 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:1104 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 templates/js/translated/order.js:700 +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 -msgid "Link to external URL" -msgstr "Enlace a URL externa" - -#: 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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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 "Debe proporcionar adjudicación de artículos" + +#: 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" -msgstr "Número de serie" +#: 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:18 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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 -msgid "This Build Order does not have any associated untracked BOM items" -msgstr "" +msgstr "Asignar elementos seleccionados" #: build/templates/build/detail.html:218 +msgid "This Build Order does not have any associated untracked BOM items" +msgstr "Esta orden de trabajo no tiene ningún objeto BOM asociado sin seguimiento" + +#: 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 "Completar elementos seleccionados" + +#: build/templates/build/detail.html:251 +msgid "Complete outputs" msgstr "" -#: build/templates/build/detail.html:239 -msgid "Create a new build output using the button above" -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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 msgid "All untracked stock items have been allocated" -msgstr "" +msgstr "Todos los artículos de stock no rastreados han sido asignados" -#: 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 +1344,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 "Detalles" +#: build/templates/build/sidebar.html:12 +msgid "Pending Items" +msgstr "Artículos Pendientes" -#: 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" -msgstr "" +#: build/templates/build/sidebar.html:15 +msgid "Completed Items" +msgstr "Artículos Completados" #: build/views.py:76 msgid "Build was cancelled" @@ -1449,7 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 "Número de días en que artículos de stock se consideran obsoletos antes de caducar" + +#: common/models.py:863 +msgid "days" msgstr "" -#: common/models.py:748 -msgid "days" -msgstr "días" - -#: 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 "" +msgstr "Habilitar control de propiedad sobre ubicaciones de stock y artículos" -#: 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 "" +msgstr "Agrupar artículos de stock por referencia de parte en vistas de tabla" -#: 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 "Mostrar artículos de stock recientemente modificados en la página de inicio" + +#: 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 "Número de elementos de stock recientes a mostrar en la página de índice" + +#: common/models.py:1044 +msgid "Show low stock" +msgstr "" + +#: common/models.py:1045 +msgid "Show low stock items on the homepage" +msgstr "Mostrar artículos de stock bajo en la página de inicio" + +#: common/models.py:1050 +msgid "Show depleted stock" +msgstr "" + +#: common/models.py:1051 +msgid "Show depleted stock items on the homepage" +msgstr "Mostrar artículos agotados en la página de inicio" + +#: common/models.py:1056 +msgid "Show needed stock" +msgstr "" + +#: common/models.py:1057 +msgid "Show stock items needed for builds on the homepage" +msgstr "Mostrar elementos de stock necesarios para construir en la página de inicio" + +#: common/models.py:1062 +msgid "Show expired stock" +msgstr "" + +#: common/models.py:1063 +msgid "Show expired stock items on the homepage" +msgstr "Mostrar artículos de stock caducados en la página de inicio" + +#: common/models.py:1068 +msgid "Show stale stock" +msgstr "" + +#: common/models.py:1069 +msgid "Show stale stock items on the homepage" +msgstr "Mostrar elementos de stock obsoletos en la página de inicio" + +#: 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 msgid "Match Fields" msgstr "" -#: common/views.py:215 +#: common/views.py:95 msgid "Match Items" -msgstr "" +msgstr "Coincidir artículos" -#: 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,9 +2207,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 +2225,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:47 msgid "Email" -msgstr "Email" +msgstr "" #: company/models.py:125 msgid "Contact email address" @@ -2330,25 +2242,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 -#: 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 -msgid "Link" -msgstr "" - #: company/models.py:131 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 "" @@ -2358,7 +2262,7 @@ msgstr "" #: company/models.py:144 msgid "Do you sell items to this company?" -msgstr "" +msgstr "¿Vendes artículos a esta empresa?" #: company/models.py:146 msgid "is supplier" @@ -2366,7 +2270,7 @@ msgstr "" #: company/models.py:146 msgid "Do you purchase items from this company?" -msgstr "" +msgstr "¿Compras artículos de esta empresa?" #: company/models.py:148 msgid "is manufacturer" @@ -2376,8 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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 +2482,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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" -msgstr "" +#: company/templates/company/sidebar.html:16 +msgid "Supplied Stock Items" +msgstr "Artículos de stock suministrados" + +#: company/templates/company/sidebar.html:22 +msgid "Assigned Stock Items" +msgstr "Artículos de Stock Asignados" #: 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:43 +msgid "Stock Items" +msgstr "Artículos de 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 "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,24 +2857,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3051,280 +2943,276 @@ 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 "" +msgstr "Introducir cantidad de artículos de stock" -#: 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 "" +msgstr "Empresa de la que se están pidiendo los artículos" -#: 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 "" +msgstr "Empresa a la que se venden los artículos" -#: 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 msgid "Received" msgstr "" -#: order/models.py:789 +#: order/models.py:798 msgid "Number of items received" -msgstr "" +msgstr "Número de artículos recibidos" -#: 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" -msgstr "" +msgstr "Seleccione la ubicación de destino para los artículos recibidos" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" -msgstr "" +msgstr "Debe proporcionar elementos de línea" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,56 +3222,54 @@ 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 "Recibir artículos" -#: 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 "" #: order/templates/order/order_cancel.html:8 msgid "Cancelling this order means that the order and line items will no longer be editable." -msgstr "" +msgstr "Cancelar este pedido significa que la orden y los elementos de línea ya no serán editables." #: order/templates/order/order_complete.html:7 msgid "Mark this order as complete?" @@ -3391,15 +3277,15 @@ msgstr "" #: order/templates/order/order_complete.html:10 msgid "This order has line items which have not been marked as received." -msgstr "" +msgstr "Este pedido tiene artículos de línea que no han sido marcados como recibidos." #: order/templates/order/order_complete.html:11 msgid "Completing this order means that the order and line items will no longer be editable." -msgstr "" +msgstr "Completar este pedido significa que los artículos de orden y línea ya no serán editables." #: order/templates/order/order_issue.html:8 msgid "After placing this purchase order, line items will no longer be editable." -msgstr "" +msgstr "Después de realizar esta orden de compra, los artículos de línea ya no serán editables." #: order/templates/order/order_wizard/match_fields.html:9 #: part/templates/part/bom_upload/match_fields.html:9 @@ -3453,7 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,9 +3421,9 @@ 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:1119 msgid "Items" -msgstr "" +msgstr "Artículos" #: order/templates/order/order_wizard/select_pos.html:32 msgid "Select Purchase Order" @@ -3548,69 +3439,73 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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 "Artículos de Línea" + +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" 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 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: order/templates/order/purchase_order_detail.html:18 msgid "Purchase Order Items" -msgstr "" +msgstr "Comprar Artículos de Orden" -#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" #: order/templates/order/purchase_order_detail.html:30 msgid "Receive selected items" -msgstr "" +msgstr "Recibir artículos seleccionados" #: order/templates/order/purchase_order_detail.html:31 msgid "Receive Items" -msgstr "" +msgstr "Recibir Artículos" -#: order/templates/order/purchase_order_detail.html:67 -#: order/templates/order/sales_order_detail.html:54 +#: order/templates/order/purchase_order_detail.html:50 +msgid "Received Items" +msgstr "Artículos Recibidos" + +#: 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:1086 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,9 +3520,9 @@ 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 "" +msgstr "Artículos de Orden de Venta" #: 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." @@ -3639,7 +3534,7 @@ msgstr "" #: order/templates/order/sales_order_ship.html:18 msgid "Some line items in this order have been over-allocated" -msgstr "" +msgstr "Algunos artículos de línea en este pedido han sido sobreasignados" #: order/templates/order/sales_order_ship.html:20 msgid "Ensure that this is correct before shipping the order." @@ -3651,19 +3546,7 @@ msgstr "" #: order/templates/order/so_allocate_by_serial.html:9 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 "" +msgstr "Asignar artículos de stock por número de serie" #: order/views.py:103 msgid "Cancel Order" @@ -3705,10 +3588,6 @@ msgstr "" msgid "Purchase order completed" msgstr "" -#: order/views.py:222 -msgid "Ship Order" -msgstr "" - #: order/views.py:238 msgid "Confirm order shipment" msgstr "" @@ -3737,7 +3616,7 @@ msgstr "" #: order/views.py:891 #, python-brace-format msgid "Allocated {n} items" -msgstr "" +msgstr "Asignados {n} artículos" #: order/views.py:907 msgid "Select line item" @@ -3776,40 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 "" @@ -3879,7 +3746,7 @@ msgstr "" #: part/forms.py:103 msgid "Clear existing BOM items" -msgstr "" +msgstr "Borrar elementos BOM existentes" #: part/forms.py:109 msgid "Confirm BOM duplication" @@ -3893,463 +3760,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:1134 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 "" +msgstr "Tiempo de expiración (en días) para los artículos de stock de esta parte" -#: 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 msgid "Last Updated" msgstr "" -#: stock/templates/stock/item_base.html:413 +#: stock/templates/stock/item_base.html:400 msgid "Last Stocktake" -msgstr "" +msgstr "Último Inventario" -#: stock/templates/stock/item_base.html:417 +#: stock/templates/stock/item_base.html:404 msgid "No stocktake performed" -msgstr "" +msgstr "Ningún inventario realizado" -#: 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" -msgstr "" +msgstr "Inventario" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 "" +msgstr "Mostrar artículos de stock que han caducado" -#: 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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,56 +8546,52 @@ 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 "" +msgstr "Añadir a los artículos de stock seleccionados" -#: templates/stock_table.html:56 +#: templates/stock_table.html:49 msgid "Remove from selected stock items" -msgstr "" +msgstr "Eliminar de los artículos de stock seleccionados" -#: templates/stock_table.html:57 +#: templates/stock_table.html:50 msgid "Stocktake selected stock items" -msgstr "" +msgstr "Inventario de artículos de stock seleccionados" -#: templates/stock_table.html:58 +#: templates/stock_table.html:51 msgid "Move selected stock items" -msgstr "" +msgstr "Mover artículos de stock seleccionados" -#: 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 "" +msgstr "Pedir artículos seleccionados" -#: 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 "" +msgstr "Eliminar artículos seleccionados" #: templates/yesnolabel.html:4 msgid "Yes" @@ -8419,35 +8625,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 "" +msgstr "Permiso para ver artículos" -#: users/models.py:195 +#: users/models.py:200 msgid "Permission to add items" -msgstr "" +msgstr "Permiso para añadir artículos" -#: 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 "" +msgstr "Permisos para editar artículos" -#: users/models.py:199 +#: users/models.py:204 msgid "Permission to delete items" -msgstr "" +msgstr "Permiso para eliminar artículos" diff --git a/InvenTree/locale/es_MX/LC_MESSAGES/django.po b/InvenTree/locale/es_MX/LC_MESSAGES/django.po index c44418473a..11cca2ebb9 100644 --- a/InvenTree/locale/es_MX/LC_MESSAGES/django.po +++ b/InvenTree/locale/es_MX/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2021-11-19 07:42+1100\n" +"POT-Creation-Date: 2021-11-30 21:49+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -37,7 +37,7 @@ 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 +#: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "" @@ -115,72 +115,95 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:109 stock/models.py:1874 +#: InvenTree/models.py:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" -#: InvenTree/models.py:110 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:112 templates/js/translated/attachment.js:91 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "" -#: InvenTree/models.py:112 +#: InvenTree/models.py:137 msgid "File comment" msgstr "" -#: InvenTree/models.py:118 InvenTree/models.py:119 common/models.py:1170 -#: common/models.py:1171 part/models.py:2205 part/models.py:2225 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "" -#: InvenTree/models.py:122 +#: InvenTree/models.py:147 msgid "upload date" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:165 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:175 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:185 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:192 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:227 +#: InvenTree/models.py:255 msgid "Invalid choice" msgstr "" -#: InvenTree/models.py:243 InvenTree/models.py:244 company/models.py:415 +#: InvenTree/models.py:271 InvenTree/models.py:272 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/js/translated/company.js:637 templates/js/translated/part.js:498 -#: templates/js/translated/part.js:635 templates/js/translated/part.js:1272 -#: templates/js/translated/stock.js:1847 +#: 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:1877 msgid "Name" msgstr "" -#: InvenTree/models.py:250 build/models.py:207 +#: InvenTree/models.py:278 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 @@ -188,24 +211,25 @@ msgstr "" #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: report/templates/report/inventree_build_order_base.html:118 -#: stock/templates/stock/location.html:108 templates/js/translated/bom.js:214 -#: templates/js/translated/bom.js:426 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 -#: templates/js/translated/order.js:833 templates/js/translated/order.js:1069 -#: templates/js/translated/part.js:557 templates/js/translated/part.js:745 -#: templates/js/translated/part.js:914 templates/js/translated/part.js:1291 -#: templates/js/translated/part.js:1360 templates/js/translated/stock.js:1121 -#: templates/js/translated/stock.js:1859 templates/js/translated/stock.js:1904 +#: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "" -#: InvenTree/models.py:251 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:259 +#: InvenTree/models.py:287 msgid "parent" msgstr "" @@ -213,87 +237,87 @@ msgstr "" msgid "Must be a valid number" msgstr "" -#: InvenTree/serializers.py:251 +#: InvenTree/serializers.py:285 msgid "Filename" msgstr "" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:670 msgid "German" msgstr "" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:672 msgid "English" msgstr "" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:667 -msgid "Spanish (Mexican" -msgstr "" - -#: InvenTree/settings.py:668 -msgid "French" -msgstr "" - -#: InvenTree/settings.py:669 -msgid "Hebrew" -msgstr "" - -#: InvenTree/settings.py:670 -msgid "Italian" -msgstr "" - -#: InvenTree/settings.py:671 -msgid "Japanese" -msgstr "" - -#: InvenTree/settings.py:672 -msgid "Korean" -msgstr "" - -#: InvenTree/settings.py:673 -msgid "Dutch" -msgstr "" - #: InvenTree/settings.py:674 -msgid "Norwegian" +msgid "Spanish (Mexican)" msgstr "" #: InvenTree/settings.py:675 -msgid "Polish" +msgid "French" msgstr "" #: InvenTree/settings.py:676 -msgid "Portugese" +msgid "Hebrew" msgstr "" #: InvenTree/settings.py:677 -msgid "Russian" +msgid "Italian" msgstr "" #: InvenTree/settings.py:678 -msgid "Swedish" +msgid "Japanese" msgstr "" #: InvenTree/settings.py:679 -msgid "Thai" +msgid "Korean" msgstr "" #: InvenTree/settings.py:680 -msgid "Turkish" +msgid "Dutch" msgstr "" #: InvenTree/settings.py:681 -msgid "Vietnamese" +msgid "Norwegian" msgstr "" #: InvenTree/settings.py:682 +msgid "Polish" +msgstr "" + +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 +msgid "Russian" +msgstr "" + +#: InvenTree/settings.py:685 +msgid "Swedish" +msgstr "" + +#: InvenTree/settings.py:686 +msgid "Thai" +msgstr "" + +#: InvenTree/settings.py:687 +msgid "Turkish" +msgstr "" + +#: InvenTree/settings.py:688 +msgid "Vietnamese" +msgstr "" + +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "" @@ -418,7 +442,7 @@ msgstr "" msgid "Split child item" msgstr "" -#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:202 +#: InvenTree/status_codes.py:291 templates/js/translated/table_filters.js:208 msgid "Sent to customer" msgstr "" @@ -478,27 +502,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:536 +#: InvenTree/views.py:538 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:585 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:17 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:21 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:630 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:863 templates/navbar.html:101 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "" @@ -544,14 +568,14 @@ 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:2576 +#: 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:1122 part/templates/part/detail.html:1208 +#: part/templates/part/detail.html:1076 part/templates/part/detail.html:1162 #: part/templates/part/part_pricing.html:16 #: report/templates/report/inventree_build_order_base.html:114 #: report/templates/report/inventree_po_report.html:91 @@ -560,17 +584,17 @@ msgstr "" #: report/templates/report/inventree_test_report_base.html:139 #: 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:441 +#: 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:1503 templates/js/translated/part.js:1626 -#: templates/js/translated/part.js:1704 templates/js/translated/stock.js:347 -#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141 +#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 msgid "Quantity" msgstr "" @@ -579,8 +603,8 @@ 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 +#: stock/serializers.py:307 templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:378 msgid "Serial Numbers" msgstr "" @@ -622,8 +646,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 "" @@ -636,8 +662,8 @@ msgstr "" #: 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:433 templates/js/translated/build.js:1119 -#: templates/js/translated/order.js:864 templates/js/translated/order.js:1451 +#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119 +#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473 msgid "Reference" msgstr "" @@ -660,7 +686,7 @@ msgstr "" #: 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/detail.html:336 +#: 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 @@ -670,15 +696,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:213 -#: templates/js/translated/bom.js:391 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/order.js:818 templates/js/translated/order.js:1435 -#: templates/js/translated/part.js:726 templates/js/translated/part.js:892 -#: templates/js/translated/stock.js:478 templates/js/translated/stock.js:1078 -#: templates/js/translated/stock.js:2129 +#: 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 msgid "Part" msgstr "" @@ -743,7 +769,7 @@ 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 +#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104 msgid "Creation Date" msgstr "" @@ -777,7 +803,7 @@ msgstr "" #: 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 +#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700 msgid "Responsible" msgstr "" @@ -793,20 +819,21 @@ msgstr "" 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 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_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 templates/js/translated/barcode.js:58 -#: templates/js/translated/bom.js:597 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/serializers.py:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 msgid "Notes" msgstr "" @@ -867,8 +894,8 @@ msgstr "" #: 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 +#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 msgid "Stock Item" msgstr "" @@ -908,16 +935,16 @@ msgstr "" 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 +#: build/serializers.py:190 order/serializers.py:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 #: 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/stock.js:480 templates/js/translated/stock.js:1221 -#: templates/js/translated/stock.js:1931 +#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 msgid "Location" msgstr "" @@ -927,11 +954,11 @@ 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 +#: order/serializers.py:240 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 +#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 msgid "Status" msgstr "" @@ -960,7 +987,7 @@ msgstr "" msgid "Item must be in stock" msgstr "" -#: build/serializers.py:348 order/models.py:316 order/serializers.py:231 +#: build/serializers.py:348 order/models.py:316 order/serializers.py:233 #: stock/models.py:381 stock/models.py:1103 stock/serializers.py:298 msgid "Quantity must be greater than zero" msgstr "" @@ -1051,7 +1078,7 @@ msgstr "" #: 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 +#: templates/js/translated/order.js:1109 msgid "Target Date" msgstr "" @@ -1066,16 +1093,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:288 -#: templates/js/translated/table_filters.js:316 -#: templates/js/translated/table_filters.js:333 +#: 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:298 +#: templates/js/translated/table_filters.js:304 msgid "Completed" msgstr "" @@ -1087,7 +1114,7 @@ msgstr "" #: 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 +#: templates/js/translated/order.js:1051 msgid "Sales Order" msgstr "" @@ -1162,7 +1189,7 @@ 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 +#: templates/js/translated/order.js:432 templates/js/translated/order.js:974 msgid "Destination" msgstr "" @@ -1176,9 +1203,9 @@ 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:145 -#: templates/js/translated/table_filters.js:227 +#: templates/js/translated/stock.js:1240 templates/js/translated/stock.js:2194 +#: templates/js/translated/table_filters.js:151 +#: templates/js/translated/table_filters.js:233 msgid "Batch" msgstr "" @@ -1197,7 +1224,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 "" @@ -1217,7 +1244,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 "" @@ -1276,10 +1303,13 @@ 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_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 "" @@ -1287,7 +1317,7 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:489 +#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 @@ -1299,45 +1329,15 @@ msgstr "" msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:448 -#: order/templates/order/purchase_order_detail.html:170 -#: order/templates/order/sales_order_detail.html:160 -#: part/templates/part/detail.html:1069 stock/templates/stock/item.html:270 -#: templates/attachment_button.html:4 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:467 -#: order/templates/order/purchase_order_detail.html:142 -#: order/templates/order/sales_order_detail.html:133 -#: part/templates/part/detail.html:1023 stock/templates/stock/item.html:238 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:474 -#: order/templates/order/purchase_order_detail.html:149 -#: order/templates/order/sales_order_detail.html:139 -#: part/templates/part/detail.html:1032 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/purchase_order_detail.html:150 -#: order/templates/order/sales_order_detail.html:140 -#: part/templates/part/detail.html:1033 stock/templates/stock/item.html:248 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:513 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:514 +#: build/templates/build/detail.html:478 msgid "All untracked stock items have been allocated" msgstr "" -#: build/templates/build/index.html:18 part/templates/part/detail.html:433 +#: build/templates/build/index.html:18 part/templates/part/detail.html:407 msgid "New Build Order" msgstr "" @@ -1357,6 +1357,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 "" @@ -1437,7 +1449,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1454,704 +1466,704 @@ 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:2429 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:367 +#: 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/bom.js:954 -#: templates/js/translated/table_filters.js:162 -#: templates/js/translated/table_filters.js:379 +#: 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:383 +#: 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:391 +#: 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:94 -#: templates/js/translated/table_filters.js:395 +#: 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:264 +#: common/models.py:1233 company/serializers.py:264 #: company/templates/company/supplier_part.html:256 -#: templates/js/translated/part.js:1508 +#: 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:49 #: 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:47 part/views.py:212 +#: part/views.py:858 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:859 msgid "Match Fields" msgstr "" @@ -2169,13 +2181,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:47 #: 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:45 msgid "Previous Step" msgstr "" @@ -2196,7 +2208,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 "" @@ -2221,7 +2233,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 -#: templates/InvenTree/settings/user.html:46 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "" @@ -2237,14 +2249,6 @@ msgstr "" 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:536 -#: templates/js/translated/company.js:825 templates/js/translated/part.js:984 -msgid "Link" -msgstr "" - #: company/models.py:131 msgid "Link to external company information" msgstr "" @@ -2299,25 +2303,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:874 +#: 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 "" @@ -2342,8 +2346,8 @@ msgstr "" #: company/models.py:422 #: report/templates/report/inventree_test_report_base.html:95 -#: stock/models.py:1867 templates/js/translated/company.js:643 -#: templates/js/translated/part.js:644 templates/js/translated/stock.js:848 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2352,8 +2356,9 @@ msgid "Parameter value" msgstr "" #: company/models.py:429 part/models.py:882 part/models.py:2397 -#: part/templates/part/detail.html:59 templates/js/translated/company.js:649 -#: templates/js/translated/part.js:650 +#: 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 "" @@ -2370,23 +2375,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 +#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861 +#: 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 "" @@ -2418,7 +2423,7 @@ 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:846 templates/js/translated/stock.js:1336 +#: templates/js/translated/company.js:847 templates/js/translated/stock.js:1366 msgid "Packaging" msgstr "" @@ -2444,7 +2449,7 @@ 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 "" @@ -2483,8 +2488,8 @@ 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:328 templates/js/translated/order.js:1051 -#: templates/js/translated/stock.js:1972 +#: templates/js/translated/company.js:329 templates/js/translated/order.js:1073 +#: templates/js/translated/stock.js:2002 msgid "Customer" msgstr "" @@ -2493,7 +2498,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 "" @@ -2504,7 +2511,7 @@ msgstr "" #: company/templates/company/detail.html:20 #: company/templates/company/manufacturer_part.html:112 -#: part/templates/part/detail.html:466 +#: part/templates/part/detail.html:440 msgid "New Supplier Part" msgstr "" @@ -2512,8 +2519,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:475 -#: part/templates/part/detail.html:503 +#: part/templates/part/category.html:160 part/templates/part/detail.html:449 +#: part/templates/part/detail.html:477 msgid "Options" msgstr "" @@ -2541,7 +2548,7 @@ msgstr "" msgid "Create new manufacturer part" msgstr "" -#: company/templates/company/detail.html:67 part/templates/part/detail.html:493 +#: company/templates/company/detail.html:67 part/templates/part/detail.html:467 msgid "New Manufacturer Part" msgstr "" @@ -2550,11 +2557,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:45 +#: 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 "" @@ -2570,11 +2580,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:56 +#: 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 "" @@ -2600,13 +2612,13 @@ msgstr "" #: company/templates/company/detail.html:383 #: company/templates/company/manufacturer_part.html:209 -#: part/templates/part/detail.html:546 +#: 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:547 +#: part/templates/part/detail.html:521 msgid "All selected supplier parts will be deleted" msgstr "" @@ -2628,12 +2640,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 "" @@ -2644,27 +2656,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:43 +#: 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:477 +#: 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:477 -#: part/templates/part/detail.html:505 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 "" @@ -2680,7 +2694,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:185 -#: part/templates/part/detail.html:983 +#: part/templates/part/detail.html:976 msgid "Add Parameter" msgstr "" @@ -2692,20 +2706,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: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:1323 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 "" @@ -2721,7 +2751,7 @@ 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 +#: templates/js/translated/stock.js:354 msgid "New Stock Item" msgstr "" @@ -2742,7 +2772,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:1717 msgid "Add Price Break" msgstr "" @@ -2750,11 +2780,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:1779 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:1765 msgid "Edit Price Break" msgstr "" @@ -2767,12 +2797,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:426 -#: templates/js/translated/part.js:561 templates/js/translated/part.js:786 -#: templates/js/translated/part.js:946 templates/js/translated/stock.js:479 -#: templates/js/translated/stock.js:1132 templates/navbar.html:26 +#: 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:509 +#: templates/js/translated/stock.js:1162 templates/navbar.html:26 msgid "Stock" msgstr "" @@ -2781,13 +2814,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:1901 +#: templates/stats.html:93 templates/stats.html:102 users/models.py:43 +msgid "Stock Items" +msgstr "" + #: company/views.py:50 msgid "New Supplier" msgstr "" @@ -2813,20 +2858,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:649 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:681 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:697 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3017,7 +3062,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:582 templates/js/translated/order.js:1092 +#: order/models.py:582 templates/js/translated/order.js:1114 msgid "Shipment Date" msgstr "" @@ -3042,7 +3087,7 @@ msgid "Line item notes" msgstr "" #: order/models.py:768 order/models.py:856 -#: templates/js/translated/order.js:1144 +#: templates/js/translated/order.js:1166 msgid "Order" msgstr "" @@ -3050,8 +3095,8 @@ msgstr "" #: 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 +#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1983 msgid "Purchase Order" msgstr "" @@ -3061,7 +3106,7 @@ 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 +#: templates/js/translated/order.js:429 templates/js/translated/order.js:954 msgid "Received" msgstr "" @@ -3071,7 +3116,7 @@ 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 +#: templates/js/translated/stock.js:1354 msgid "Purchase Price" msgstr "" @@ -3132,47 +3177,47 @@ msgstr "" msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:286 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:260 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:298 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:315 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:326 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:568 +#: order/serializers.py:569 msgid "Sale price currency" msgstr "" @@ -3318,19 +3363,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:16 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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:25 +#: 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:23 #, 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:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3373,7 +3422,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:695 templates/js/translated/order.js:1097 +#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119 msgid "Items" msgstr "" @@ -3391,14 +3440,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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/purchase_order_detail.html:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:191 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3442,7 +3502,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:121 -#: templates/js/translated/order.js:1064 +#: templates/js/translated/order.js:1086 msgid "Customer Reference" msgstr "" @@ -3596,19 +3656,19 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:731 +#: part/api.py:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:735 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:750 +#: part/api.py:777 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804 +#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831 msgid "This field is required" msgstr "" @@ -3701,23 +3761,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 "" @@ -3746,10 +3802,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:1304 -#: templates/navbar.html:19 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 "" @@ -3814,7 +3872,7 @@ 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:928 +#: templates/js/translated/part.js:1021 msgid "Category" msgstr "" @@ -3823,7 +3881,8 @@ msgid "Part category" msgstr "" #: part/models.py:784 part/templates/part/detail.html:45 -#: templates/js/translated/part.js:549 +#: templates/js/translated/part.js:550 templates/js/translated/part.js:974 +#: templates/js/translated/stock.js:1134 msgid "IPN" msgstr "" @@ -3836,7 +3895,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:553 +#: templates/js/translated/part.js:554 msgid "Revision" msgstr "" @@ -3893,9 +3952,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:90 -#: templates/js/translated/table_filters.js:284 -#: templates/js/translated/table_filters.js:362 +#: templates/js/translated/table_filters.js:96 +#: templates/js/translated/table_filters.js:290 +#: templates/js/translated/table_filters.js:368 msgid "Active" msgstr "" @@ -3943,8 +4002,8 @@ msgstr "" msgid "Test with this name already exists for this part" msgstr "" -#: part/models.py:2310 templates/js/translated/part.js:1355 -#: templates/js/translated/stock.js:828 +#: part/models.py:2310 templates/js/translated/part.js:1467 +#: templates/js/translated/stock.js:858 msgid "Test Name" msgstr "" @@ -3960,8 +4019,8 @@ msgstr "" msgid "Enter description for this test" msgstr "" -#: part/models.py:2322 templates/js/translated/part.js:1364 -#: templates/js/translated/table_filters.js:270 +#: part/models.py:2322 templates/js/translated/part.js:1476 +#: templates/js/translated/table_filters.js:276 msgid "Required" msgstr "" @@ -3969,7 +4028,7 @@ msgstr "" msgid "Is this test required to pass?" msgstr "" -#: part/models.py:2328 templates/js/translated/part.js:1372 +#: part/models.py:2328 templates/js/translated/part.js:1484 msgid "Requires Value" msgstr "" @@ -3977,7 +4036,7 @@ msgstr "" msgid "Does this test require a value when adding a test result?" msgstr "" -#: part/models.py:2334 templates/js/translated/part.js:1379 +#: part/models.py:2334 templates/js/translated/part.js:1491 msgid "Requires Attachment" msgstr "" @@ -4039,9 +4098,9 @@ msgstr "" msgid "BOM quantity for this BOM item" msgstr "" -#: part/models.py:2578 templates/js/translated/bom.js:452 -#: templates/js/translated/bom.js:526 -#: templates/js/translated/table_filters.js:86 +#: 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 "" @@ -4073,10 +4132,10 @@ msgstr "" msgid "BOM line checksum" msgstr "" -#: part/models.py:2594 templates/js/translated/bom.js:543 -#: templates/js/translated/bom.js:550 +#: 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:82 +#: templates/js/translated/table_filters.js:88 msgid "Inherited" msgstr "" @@ -4084,7 +4143,7 @@ msgstr "" msgid "This BOM item is inherited by BOMs for variant parts" msgstr "" -#: part/models.py:2600 templates/js/translated/bom.js:535 +#: part/models.py:2600 templates/js/translated/bom.js:537 msgid "Allow Variants" msgstr "" @@ -4155,7 +4214,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 "" @@ -4171,23 +4230,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 "" @@ -4249,6 +4312,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 "" @@ -4335,7 +4399,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:365 +#: 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 "" @@ -4408,7 +4476,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 "" @@ -4416,112 +4484,124 @@ 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:391 part/views.py:820 +#: part/templates/part/detail.html:365 part/views.py:755 msgid "Validate BOM" msgstr "" -#: part/templates/part/detail.html:396 +#: part/templates/part/detail.html:370 msgid "New BOM Item" msgstr "" -#: part/templates/part/detail.html:397 +#: part/templates/part/detail.html:371 msgid "Add BOM Item" msgstr "" -#: part/templates/part/detail.html:410 +#: part/templates/part/detail.html:384 msgid "Assemblies" msgstr "" -#: part/templates/part/detail.html:427 +#: part/templates/part/detail.html:401 msgid "Part Builds" msgstr "" -#: part/templates/part/detail.html:452 +#: part/templates/part/detail.html:426 msgid "Build Order Allocations" msgstr "" -#: part/templates/part/detail.html:462 +#: part/templates/part/detail.html:436 msgid "Part Suppliers" msgstr "" -#: part/templates/part/detail.html:489 +#: part/templates/part/detail.html:463 msgid "Part Manufacturers" msgstr "" -#: part/templates/part/detail.html:505 +#: part/templates/part/detail.html:479 msgid "Delete manufacturer parts" msgstr "" -#: part/templates/part/detail.html:686 +#: part/templates/part/detail.html:660 msgid "Delete selected BOM items?" msgstr "" -#: part/templates/part/detail.html:687 +#: part/templates/part/detail.html:661 msgid "All selected BOM items will be deleted" msgstr "" -#: part/templates/part/detail.html:738 +#: part/templates/part/detail.html:712 msgid "Create BOM Item" msgstr "" -#: part/templates/part/detail.html:876 +#: part/templates/part/detail.html:764 +msgid "Related Part" +msgstr "" + +#: part/templates/part/detail.html:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:933 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:1085 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1097 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1109 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1198 +#: part/templates/part/detail.html:1152 #, 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:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:15 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 msgid "Import Parts from File" msgstr "" @@ -4619,10 +4699,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:464 templates/js/translated/part.js:541 +#: templates/js/translated/part.js:465 templates/js/translated/part.js:542 msgid "Inactive" msgstr "" @@ -4631,12 +4711,12 @@ msgstr "" 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:182 +#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546 +#: templates/js/translated/table_filters.js:188 msgid "In Stock" msgstr "" -#: part/templates/part/part_base.html:185 templates/js/translated/part.js:961 +#: part/templates/part/part_base.html:185 templates/js/translated/part.js:1054 msgid "On Order" msgstr "" @@ -4652,12 +4732,12 @@ msgstr "" msgid "Allocated to Orders" msgstr "" -#: part/templates/part/part_base.html:221 templates/js/translated/bom.js:564 +#: 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:793 -#: templates/js/translated/part.js:965 +#: part/templates/part/part_base.html:227 templates/js/translated/part.js:885 +#: templates/js/translated/part.js:1058 msgid "Building" msgstr "" @@ -4692,7 +4772,7 @@ msgid "Total Cost" msgstr "" #: part/templates/part/part_pricing.html:40 part/templates/part/prices.html:40 -#: templates/js/translated/bom.js:518 +#: templates/js/translated/bom.js:520 msgid "No supplier pricing available" msgstr "" @@ -4726,6 +4806,23 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4796,7 +4893,7 @@ msgstr "" msgid "Calculation parameters" msgstr "" -#: part/templates/part/prices.html:155 templates/js/translated/bom.js:512 +#: part/templates/part/prices.html:155 templates/js/translated/bom.js:514 msgid "Supplier Cost" msgstr "" @@ -4818,7 +4915,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -4838,9 +4935,9 @@ msgstr "" msgid "Set category for the following parts" msgstr "" -#: part/templates/part/stock_count.html:7 templates/js/translated/bom.js:474 -#: templates/js/translated/part.js:428 templates/js/translated/part.js:783 -#: templates/js/translated/part.js:969 +#: 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 "" @@ -4861,128 +4958,120 @@ msgstr "" 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:502 msgid "None" msgstr "" -#: part/views.py:626 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:728 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:754 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:757 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:769 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:799 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:841 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:852 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:925 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1261 +#: part/views.py:1196 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1313 +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1320 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1329 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1478 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1488 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1495 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1554 templates/js/translated/part.js:309 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1592 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1598 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1607 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1708 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1764 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1786 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1862 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1870 +#: part/views.py:1805 msgid "Delete Internal Price Break" msgstr "" @@ -5079,11 +5168,6 @@ 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 "" @@ -5093,7 +5177,7 @@ msgstr "" #: 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 +#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377 msgid "Serial Number" msgstr "" @@ -5112,7 +5196,7 @@ msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" @@ -5125,11 +5209,12 @@ msgid "Fail" msgstr "" #: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:2147 +#: templates/js/translated/stock.js:2177 msgid "Serial" msgstr "" @@ -5139,7 +5224,7 @@ 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 +#: templates/js/translated/stock.js:1276 msgid "Expiry Date" msgstr "" @@ -5364,7 +5449,7 @@ msgstr "" msgid "Test name" msgstr "" -#: stock/models.py:1862 templates/js/translated/table_filters.js:260 +#: stock/models.py:1862 templates/js/translated/table_filters.js:266 msgid "Test result" msgstr "" @@ -5401,7 +5486,7 @@ msgstr "" msgid "Enter serial numbers for new items" msgstr "" -#: stock/serializers.py:319 stock/serializers.py:687 +#: stock/serializers.py:319 stock/serializers.py:686 msgid "Destination stock location" msgstr "" @@ -5413,15 +5498,15 @@ msgstr "" msgid "Serial numbers cannot be assigned to this part" msgstr "" -#: stock/serializers.py:557 +#: stock/serializers.py:556 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:585 +#: stock/serializers.py:584 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:595 +#: stock/serializers.py:594 msgid "A list of stock items must be provided" msgstr "" @@ -5442,6 +5527,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 "" @@ -5465,15 +5551,15 @@ msgstr "" msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343 +#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:363 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:377 +#: stock/templates/stock/item.html:338 msgid "Delete Test Result" msgstr "" @@ -5563,13 +5649,13 @@ msgstr "" #: stock/templates/stock/item_base.html:136 #: stock/templates/stock/item_base.html:386 -#: templates/js/translated/table_filters.js:241 +#: 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:247 +#: templates/js/translated/table_filters.js:253 msgid "Stale" msgstr "" @@ -5647,7 +5733,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1289 msgid "Last Updated" msgstr "" @@ -5663,7 +5749,7 @@ msgstr "" msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:504 +#: stock/templates/stock/item_base.html:505 msgid "Edit Stock Status" msgstr "" @@ -5751,17 +5837,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" @@ -5783,6 +5862,14 @@ msgstr "" msgid "Loading..." msgstr "" +#: stock/templates/stock/stock_sidebar.html:5 +msgid "Stock Tracking" +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 "" @@ -5857,7 +5944,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:618 +#: stock/views.py:760 templates/js/translated/stock.js:648 msgid "Confirm stock adjustment" msgstr "" @@ -5865,7 +5952,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:793 templates/js/translated/stock.js:288 +#: stock/views.py:793 templates/js/translated/stock.js:318 msgid "Edit Stock Item" msgstr "" @@ -5877,7 +5964,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1186 templates/js/translated/stock.js:268 +#: stock/views.py:1186 templates/js/translated/stock.js:298 msgid "Duplicate Stock Item" msgstr "" @@ -6030,6 +6117,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 +#: templates/InvenTree/settings/sidebar.html:28 msgid "Login Settings" msgstr "" @@ -6100,6 +6188,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:12 +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 "" @@ -6108,148 +6249,140 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account 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 +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" +msgstr "" + +#: templates/InvenTree/settings/user.html:32 msgid "Username" msgstr "" -#: templates/InvenTree/settings/user.html:35 +#: templates/InvenTree/settings/user.html:36 msgid "First Name" msgstr "" -#: templates/InvenTree/settings/user.html:39 +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:54 +#: templates/InvenTree/settings/user.html:55 msgid "The following email addresses are associated with your account:" msgstr "" -#: templates/InvenTree/settings/user.html:74 +#: templates/InvenTree/settings/user.html:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:76 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:78 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:84 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:85 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:86 -#: templates/InvenTree/settings/user.html:153 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:93 +#: templates/InvenTree/settings/user.html:94 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:94 +#: templates/InvenTree/settings/user.html:95 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 +#: templates/InvenTree/settings/user.html:102 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:111 +#: templates/InvenTree/settings/user.html:112 msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:113 +#: templates/InvenTree/settings/user.html:114 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:123 +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:128 +#: templates/InvenTree/settings/user.html:129 msgid "You can sign in to your account using any of the following third party accounts:" msgstr "" -#: templates/InvenTree/settings/user.html:162 +#: templates/InvenTree/settings/user.html:163 msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:167 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:177 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" #: templates/InvenTree/settings/user.html:186 -msgid "Select language" +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" 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" +msgid "Last Activity" msgstr "" #: templates/InvenTree/settings/user.html:211 -msgid "Set Language" +#, python-format +msgid "%(time)s ago (this session)" 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 "Show them too" +#, python-format +msgid "%(time)s ago" 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:9 -msgid "Display Settings" -msgstr "" - #: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "" @@ -6262,6 +6395,52 @@ msgstr "" msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 +#, python-format +msgid "%(lang_translated)s%% translated" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:81 +msgid "No translations available" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:88 +msgid "Set Language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 +msgid "Help the translation efforts!" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:102 +#, 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_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6270,20 +6449,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:281 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 @@ -6469,6 +6640,14 @@ msgstr "" msgid "View in administration panel" msgstr "" +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +msgstr "" + #: templates/base.html:96 msgid "Server Restart Required" msgstr "" @@ -6499,13 +6678,13 @@ msgid "The following parts are low on required stock" msgstr "" #: templates/email/build_order_required_stock.html:18 -#: templates/js/translated/bom.js:989 +#: 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:465 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 "" @@ -6552,75 +6731,87 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:191 +#: templates/js/translated/api.js:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:193 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050 +#: templates/js/translated/api.js:203 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 +#: templates/js/translated/api.js:207 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 +#: templates/js/translated/api.js:208 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 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:215 +#: templates/js/translated/api.js:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:216 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:95 -msgid "Upload Date" +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" msgstr "" #: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 +msgid "Upload Date" +msgstr "" + +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:115 +#: templates/js/translated/attachment.js:185 msgid "Delete attachment" msgstr "" @@ -6681,7 +6872,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600 msgid "Remove stock item" msgstr "" @@ -6727,92 +6918,92 @@ msgstr "" msgid "Remove substitute part" msgstr "" -#: templates/js/translated/bom.js:226 +#: templates/js/translated/bom.js:228 msgid "Select and add a new variant item using the input below" msgstr "" -#: templates/js/translated/bom.js:237 +#: templates/js/translated/bom.js:239 msgid "Are you sure you wish to remove this substitute part link?" msgstr "" -#: templates/js/translated/bom.js:243 +#: templates/js/translated/bom.js:245 msgid "Remove Substitute Part" msgstr "" -#: templates/js/translated/bom.js:282 +#: templates/js/translated/bom.js:284 msgid "Add Substitute" msgstr "" -#: templates/js/translated/bom.js:283 +#: templates/js/translated/bom.js:285 msgid "Edit BOM Item Substitutes" msgstr "" -#: templates/js/translated/bom.js:402 +#: templates/js/translated/bom.js:404 msgid "Substitutes Available" msgstr "" -#: templates/js/translated/bom.js:406 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:411 +#: templates/js/translated/bom.js:413 msgid "Open subassembly" msgstr "" -#: templates/js/translated/bom.js:483 +#: templates/js/translated/bom.js:485 msgid "Substitutes" msgstr "" -#: templates/js/translated/bom.js:498 +#: templates/js/translated/bom.js:500 msgid "Purchase Price Range" msgstr "" -#: templates/js/translated/bom.js:505 +#: templates/js/translated/bom.js:507 msgid "Purchase Price Average" msgstr "" -#: templates/js/translated/bom.js:554 templates/js/translated/bom.js:643 +#: templates/js/translated/bom.js:556 templates/js/translated/bom.js:645 msgid "View BOM" msgstr "" -#: templates/js/translated/bom.js:606 templates/js/translated/build.js:1183 -#: templates/js/translated/order.js:1298 +#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183 +#: templates/js/translated/order.js:1320 msgid "Actions" msgstr "" -#: templates/js/translated/bom.js:614 +#: templates/js/translated/bom.js:616 msgid "Validate BOM Item" msgstr "" -#: templates/js/translated/bom.js:616 +#: templates/js/translated/bom.js:618 msgid "This line has been validated" msgstr "" -#: templates/js/translated/bom.js:618 +#: templates/js/translated/bom.js:620 msgid "Edit substitute parts" msgstr "" -#: templates/js/translated/bom.js:620 templates/js/translated/bom.js:794 +#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:796 msgid "Edit BOM Item" msgstr "" -#: templates/js/translated/bom.js:622 templates/js/translated/bom.js:777 +#: templates/js/translated/bom.js:624 templates/js/translated/bom.js:779 msgid "Delete BOM Item" msgstr "" -#: templates/js/translated/bom.js:716 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:772 +#: templates/js/translated/bom.js:774 msgid "Are you sure you want to delete this BOM item?" msgstr "" -#: templates/js/translated/bom.js:972 templates/js/translated/build.js:1095 +#: templates/js/translated/bom.js:974 templates/js/translated/build.js:1095 msgid "Required Part" msgstr "" -#: templates/js/translated/bom.js:994 +#: templates/js/translated/bom.js:996 msgid "Inherited from parent BOM" msgstr "" @@ -6868,7 +7059,7 @@ msgstr "" msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172 +#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194 msgid "Location not specified" msgstr "" @@ -6877,12 +7068,12 @@ 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 +#: templates/js/translated/order.js:1327 msgid "Edit stock allocation" msgstr "" #: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 -#: templates/js/translated/order.js:1306 +#: templates/js/translated/order.js:1328 msgid "Delete stock allocation" msgstr "" @@ -6903,11 +7094,11 @@ 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 +#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589 +#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611 msgid "Build stock" msgstr "" @@ -6915,7 +7106,7 @@ msgstr "" msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582 +#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604 msgid "Allocate stock" msgstr "" @@ -6956,9 +7147,9 @@ msgstr "" msgid "No builds matching query" msgstr "" -#: templates/js/translated/build.js:1593 templates/js/translated/part.js:873 -#: templates/js/translated/part.js:1265 templates/js/translated/stock.js:1064 -#: templates/js/translated/stock.js:1841 +#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966 +#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094 +#: templates/js/translated/stock.js:1871 msgid "Select" msgstr "" @@ -6966,7 +7157,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060 +#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090 msgid "No user information" msgstr "" @@ -6982,7 +7173,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 "" @@ -6994,87 +7185,87 @@ 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:448 -#: templates/js/translated/part.js:533 +#: 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:452 -#: templates/js/translated/part.js:537 +#: 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:625 +#: 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:667 +#: 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:668 +#: 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:685 +#: 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:697 +#: 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 "" @@ -7108,45 +7299,45 @@ msgstr "" 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 +#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:351 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:380 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:394 +#: templates/js/translated/forms.js:395 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:679 +#: templates/js/translated/forms.js:680 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1071 templates/modals.html:19 +#: templates/js/translated/forms.js:1072 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1457 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1661 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1878 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7159,7 +7350,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:624 msgid "Select Stock Items" msgstr "" @@ -7315,11 +7506,11 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393 +#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423 msgid "Format" msgstr "" -#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394 +#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424 msgid "Select file format" msgstr "" @@ -7335,7 +7526,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643 +#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673 msgid "Stock Status" msgstr "" @@ -7363,305 +7554,317 @@ msgstr "" msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041 +#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:801 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 msgid "Total" msgstr "" -#: templates/js/translated/order.js:882 templates/js/translated/order.js:1470 -#: templates/js/translated/part.js:1482 templates/js/translated/part.js:1693 +#: templates/js/translated/order.js:904 templates/js/translated/order.js:1492 +#: 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 +#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:976 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:980 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1055 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1133 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1226 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1244 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1286 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1535 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1579 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1585 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1596 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1719 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1779 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1793 +#: templates/js/translated/order.js:1815 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:334 +#: templates/js/translated/part.js:335 msgid "Part edited" msgstr "" -#: templates/js/translated/part.js:402 +#: templates/js/translated/part.js:403 msgid "You are subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:404 +#: templates/js/translated/part.js:405 msgid "You have subscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:409 +#: templates/js/translated/part.js:410 msgid "Subscribe to notifications for this item" msgstr "" -#: templates/js/translated/part.js:411 +#: templates/js/translated/part.js:412 msgid "You have unsubscribed to notifications for this item" msgstr "" -#: templates/js/translated/part.js:440 templates/js/translated/part.js:525 +#: templates/js/translated/part.js:441 templates/js/translated/part.js:526 msgid "Trackable part" msgstr "" -#: templates/js/translated/part.js:444 templates/js/translated/part.js:529 +#: templates/js/translated/part.js:445 templates/js/translated/part.js:530 msgid "Virtual part" msgstr "" -#: templates/js/translated/part.js:456 +#: templates/js/translated/part.js:457 msgid "Subscribed part" msgstr "" -#: templates/js/translated/part.js:460 +#: templates/js/translated/part.js:461 msgid "Salable part" msgstr "" -#: templates/js/translated/part.js:575 +#: templates/js/translated/part.js:576 msgid "No variants found" msgstr "" -#: templates/js/translated/part.js:764 templates/js/translated/part.js:1008 +#: 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:933 +#: templates/js/translated/part.js:1026 msgid "No category" msgstr "" -#: templates/js/translated/part.js:956 -#: templates/js/translated/table_filters.js:375 +#: templates/js/translated/part.js:1049 +#: templates/js/translated/table_filters.js:381 msgid "Low stock" msgstr "" -#: templates/js/translated/part.js:1028 templates/js/translated/part.js:1200 -#: templates/js/translated/stock.js:1802 +#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312 +#: templates/js/translated/stock.js:1832 msgid "Display as list" msgstr "" -#: templates/js/translated/part.js:1044 +#: templates/js/translated/part.js:1156 msgid "Display as grid" msgstr "" -#: templates/js/translated/part.js:1219 templates/js/translated/stock.js:1821 +#: templates/js/translated/part.js:1331 templates/js/translated/stock.js:1851 msgid "Display as tree" msgstr "" -#: templates/js/translated/part.js:1283 +#: templates/js/translated/part.js:1395 msgid "Subscribed category" msgstr "" -#: templates/js/translated/part.js:1297 templates/js/translated/stock.js:1865 +#: templates/js/translated/part.js:1409 templates/js/translated/stock.js:1895 msgid "Path" msgstr "" -#: templates/js/translated/part.js:1341 +#: templates/js/translated/part.js:1453 msgid "No test templates matching query" msgstr "" -#: templates/js/translated/part.js:1392 templates/js/translated/stock.js:786 +#: templates/js/translated/part.js:1504 templates/js/translated/stock.js:816 msgid "Edit test result" msgstr "" -#: templates/js/translated/part.js:1393 templates/js/translated/stock.js:787 +#: templates/js/translated/part.js:1505 templates/js/translated/stock.js:817 msgid "Delete test result" msgstr "" -#: templates/js/translated/part.js:1399 +#: templates/js/translated/part.js:1511 msgid "This test is defined for a parent part" msgstr "" -#: templates/js/translated/part.js:1421 +#: templates/js/translated/part.js:1533 msgid "Edit Test Result Template" msgstr "" -#: templates/js/translated/part.js:1435 +#: templates/js/translated/part.js:1547 msgid "Delete Test Result Template" msgstr "" -#: templates/js/translated/part.js:1460 +#: templates/js/translated/part.js:1572 #, python-brace-format msgid "No ${human_name} information found" msgstr "" -#: templates/js/translated/part.js:1515 +#: templates/js/translated/part.js:1627 #, python-brace-format msgid "Edit ${human_name}" msgstr "" -#: templates/js/translated/part.js:1516 +#: templates/js/translated/part.js:1628 #, python-brace-format msgid "Delete ${human_name}" msgstr "" -#: templates/js/translated/part.js:1617 +#: templates/js/translated/part.js:1729 msgid "Single Price" msgstr "" -#: templates/js/translated/part.js:1636 +#: templates/js/translated/part.js:1748 msgid "Single Price Difference" msgstr "" @@ -7735,264 +7938,272 @@ msgstr "" msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/stock.js:104 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:126 +#: templates/js/translated/stock.js:140 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:189 +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:195 +#: templates/js/translated/stock.js:225 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:368 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:351 +#: templates/js/translated/stock.js:381 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:420 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:401 +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:402 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:444 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:451 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:457 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:462 users/models.py:200 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:466 templates/stock_table.html:56 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:595 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:755 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:760 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:808 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:972 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:990 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1153 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1156 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1160 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1166 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1170 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1177 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1179 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1185 -#: templates/js/translated/table_filters.js:177 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1235 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1308 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1346 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1484 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1672 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1673 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1897 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1919 -msgid "Details" -msgstr "" - -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1963 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2000 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2023 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2072 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2073 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2124 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8012,180 +8223,180 @@ msgstr "" msgid "Allow Variant Stock" msgstr "" -#: templates/js/translated/table_filters.js:104 -#: templates/js/translated/table_filters.js:172 +#: templates/js/translated/table_filters.js:110 +#: templates/js/translated/table_filters.js:178 msgid "Include sublocations" msgstr "" -#: templates/js/translated/table_filters.js:105 +#: templates/js/translated/table_filters.js:111 msgid "Include locations" msgstr "" -#: templates/js/translated/table_filters.js:115 -#: templates/js/translated/table_filters.js:116 -#: templates/js/translated/table_filters.js:352 +#: 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:120 -#: templates/js/translated/table_filters.js:387 +#: templates/js/translated/table_filters.js:126 +#: templates/js/translated/table_filters.js:393 msgid "Subscribed" msgstr "" -#: templates/js/translated/table_filters.js:130 -#: templates/js/translated/table_filters.js:207 +#: templates/js/translated/table_filters.js:136 +#: templates/js/translated/table_filters.js:213 msgid "Is Serialized" msgstr "" -#: templates/js/translated/table_filters.js:133 -#: templates/js/translated/table_filters.js:214 +#: 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:134 -#: templates/js/translated/table_filters.js:215 +#: 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:137 -#: templates/js/translated/table_filters.js:218 +#: 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:138 -#: templates/js/translated/table_filters.js:219 +#: 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:141 -#: templates/js/translated/table_filters.js:142 -#: templates/js/translated/table_filters.js:210 -#: templates/js/translated/table_filters.js:211 +#: 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:146 -#: templates/js/translated/table_filters.js:228 +#: templates/js/translated/table_filters.js:152 +#: templates/js/translated/table_filters.js:234 msgid "Batch code" msgstr "" -#: templates/js/translated/table_filters.js:157 -#: templates/js/translated/table_filters.js:342 +#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:348 msgid "Active parts" msgstr "" -#: templates/js/translated/table_filters.js:158 +#: templates/js/translated/table_filters.js:164 msgid "Show stock for active parts" msgstr "" -#: templates/js/translated/table_filters.js:163 +#: templates/js/translated/table_filters.js:169 msgid "Part is an assembly" msgstr "" -#: templates/js/translated/table_filters.js:167 +#: templates/js/translated/table_filters.js:173 msgid "Is allocated" msgstr "" -#: templates/js/translated/table_filters.js:168 +#: templates/js/translated/table_filters.js:174 msgid "Item has been allocated" msgstr "" -#: templates/js/translated/table_filters.js:173 +#: templates/js/translated/table_filters.js:179 msgid "Include stock in sublocations" msgstr "" -#: templates/js/translated/table_filters.js:178 +#: templates/js/translated/table_filters.js:184 msgid "Show stock items which are depleted" msgstr "" -#: templates/js/translated/table_filters.js:183 +#: templates/js/translated/table_filters.js:189 msgid "Show items which are in stock" msgstr "" -#: templates/js/translated/table_filters.js:187 +#: templates/js/translated/table_filters.js:193 msgid "In Production" msgstr "" -#: templates/js/translated/table_filters.js:188 +#: templates/js/translated/table_filters.js:194 msgid "Show items which are in production" msgstr "" -#: templates/js/translated/table_filters.js:192 +#: templates/js/translated/table_filters.js:198 msgid "Include Variants" msgstr "" -#: templates/js/translated/table_filters.js:193 +#: templates/js/translated/table_filters.js:199 msgid "Include stock items for variant parts" msgstr "" -#: templates/js/translated/table_filters.js:197 +#: templates/js/translated/table_filters.js:203 msgid "Installed" msgstr "" -#: templates/js/translated/table_filters.js:198 +#: templates/js/translated/table_filters.js:204 msgid "Show stock items which are installed in another item" msgstr "" -#: templates/js/translated/table_filters.js:203 +#: templates/js/translated/table_filters.js:209 msgid "Show items which have been assigned to a customer" msgstr "" -#: templates/js/translated/table_filters.js:223 -#: templates/js/translated/table_filters.js:224 +#: templates/js/translated/table_filters.js:229 +#: templates/js/translated/table_filters.js:230 msgid "Stock status" msgstr "" -#: templates/js/translated/table_filters.js:232 +#: templates/js/translated/table_filters.js:238 msgid "Has purchase price" msgstr "" -#: templates/js/translated/table_filters.js:233 +#: templates/js/translated/table_filters.js:239 msgid "Show stock items which have a purchase price set" msgstr "" -#: templates/js/translated/table_filters.js:242 +#: templates/js/translated/table_filters.js:248 msgid "Show stock items which have expired" msgstr "" -#: templates/js/translated/table_filters.js:248 +#: templates/js/translated/table_filters.js:254 msgid "Show stock which is close to expiring" msgstr "" -#: templates/js/translated/table_filters.js:279 +#: templates/js/translated/table_filters.js:285 msgid "Build status" msgstr "" -#: templates/js/translated/table_filters.js:307 -#: templates/js/translated/table_filters.js:324 +#: templates/js/translated/table_filters.js:313 +#: templates/js/translated/table_filters.js:330 msgid "Order status" msgstr "" -#: templates/js/translated/table_filters.js:312 -#: templates/js/translated/table_filters.js:329 +#: templates/js/translated/table_filters.js:318 +#: templates/js/translated/table_filters.js:335 msgid "Outstanding" msgstr "" -#: templates/js/translated/table_filters.js:353 +#: templates/js/translated/table_filters.js:359 msgid "Include parts in subcategories" msgstr "" -#: templates/js/translated/table_filters.js:357 +#: templates/js/translated/table_filters.js:363 msgid "Has IPN" msgstr "" -#: templates/js/translated/table_filters.js:358 +#: templates/js/translated/table_filters.js:364 msgid "Part has internal part number" msgstr "" -#: templates/js/translated/table_filters.js:363 +#: templates/js/translated/table_filters.js:369 msgid "Show active parts" msgstr "" -#: templates/js/translated/table_filters.js:371 +#: templates/js/translated/table_filters.js:377 msgid "Stock available" msgstr "" -#: templates/js/translated/table_filters.js:399 +#: templates/js/translated/table_filters.js:405 msgid "Purchasable" 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..235abaafb7 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:51\n" "Last-Translator: \n" "Language-Team: French\n" "Language: fr_FR\n" @@ -33,262 +33,292 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Pièce jointe" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "Sélectionnez un fichier à joindre" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "Lien" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "Lien vers une url externe" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "Commentaire" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 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 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "Utilisateur" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "date de chargement" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" -msgstr "" +msgstr "Le nom de fichier ne doit pas être vide" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" -msgstr "" +msgstr "Répertoire de pièce jointe invalide" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, 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:206 msgid "Filename missing extension" -msgstr "" +msgstr "Extension manquante du nom de fichier" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 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:220 msgid "Error renaming file" -msgstr "" +msgstr "Erreur lors du renommage du fichier" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "Description" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "Description (facultative)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" -msgstr "" +msgstr "Nom du fichier" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "Allemand" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" -msgstr "" +msgstr "Greek" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "Anglais" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" -msgstr "" +msgstr "Spanish" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "Espagnol (Mexique)" + +#: InvenTree/settings.py:675 msgid "French" msgstr "Français" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" -msgstr "" +msgstr "Hebrew" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" -msgstr "" +msgstr "Italian" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" -msgstr "" +msgstr "Japanese" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" -msgstr "" +msgstr "Korean" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" -msgstr "" +msgstr "Dutch" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" -msgstr "" +msgstr "Norwegian" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "Polonais" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "Portugais" + +#: InvenTree/settings.py:684 msgid "Russian" -msgstr "" +msgstr "Russian" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" -msgstr "" +msgstr "Swedish" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" -msgstr "" +msgstr "Thai" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "Turc" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" -msgstr "" +msgstr "Vietnamese" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" -msgstr "" +msgstr "Chinese" #: InvenTree/status.py:94 msgid "Background worker check failed" @@ -302,202 +332,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:538 msgid "Delete Item" msgstr "Supprimer cet élément" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 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:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "Modifier les informations utilisateur" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" -msgstr "" +msgstr "Définir le mot de passe" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" -msgstr "" +msgstr "Les mots de passe doivent correspondre" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 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 +539,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 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1378,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 +1392,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 +1404,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 +1412,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)" @@ -1537,9 +1448,9 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" -msgstr "" +msgstr "Fichier" #: common/forms.py:35 msgid "Select file to upload" @@ -1554,738 +1465,738 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" 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 +2207,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 +2232,65 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 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 "" - -#: company/models.py:131 company/models.py:348 company/models.py:564 -#: order/models.py:160 part/models.py:715 -#: 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 -msgid "Link" -msgstr "" +msgstr "Point de contact" #: 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 +2299,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:874 +#: 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 +2335,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 "" @@ -2440,19 +2344,20 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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,406 +2484,397 @@ 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:1073 +#: templates/js/translated/stock.js:2002 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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3004,7 +2896,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 +2912,7 @@ msgstr "" #: label/models.py:147 msgid "Height [mm]" -msgstr "" +msgstr "Hauteur [mm]" #: label/models.py:148 msgid "Label height, specified in mm" @@ -3039,9 +2931,9 @@ 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 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" -msgstr "" +msgstr "Filtres" #: label/models.py:318 msgid "Query filters (comma-separated list of key=value pairs" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 +#: order/serializers.py:169 msgid "Purchase price currency" -msgstr "" +msgstr "Devise du prix d'achat" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" -msgstr "" +msgstr "Le code-barres est déjà utilisé" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3322,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 +3339,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,25 +3356,29 @@ 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" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: order/templates/order/purchase_order_detail.html:18 msgid "Purchase Order Items" -msgstr "" +msgstr "Articles de la commande d'achat" -#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3558,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 +3578,7 @@ msgstr "" #: order/views.py:185 msgid "Complete Order" -msgstr "" +msgstr "Finaliser la commande" #: order/views.py:201 msgid "Confirm order completion" @@ -3705,10 +3588,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 +3602,7 @@ msgstr "" #: order/views.py:535 msgid "Update prices" -msgstr "" +msgstr "Mettre à jour les prix" #: order/views.py:793 #, python-brace-format @@ -3764,7 +3643,7 @@ msgstr "" #: order/views.py:1078 msgid "Price not found" -msgstr "" +msgstr "Prix introuvable" #: order/views.py:1081 #, python-brace-format @@ -3776,40 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3698,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 +3736,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 +3760,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:1134 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:858 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 +4227,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4782,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +msgstr "Détails" + +#: 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 +4885,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 +4899,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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 +4952,135 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" +msgstr "Nom du modèle" #: report/models.py:188 msgid "Report template file" @@ -5206,604 +5114,640 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" -msgstr "" +msgstr "Extrait " -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" -msgstr "" +msgstr "Elément" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +msgstr "Ajouter une pièce jointe" + +#: 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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "Modifier la pièce jointe" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..19508cb053 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:52\n" "Last-Translator: \n" "Language-Team: Hebrew\n" "Language: he_IL\n" @@ -33,260 +33,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 msgid "File comment" msgstr "" -#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055 -#: common/models.py:1056 part/models.py:2055 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "" @@ -2336,19 +2248,11 @@ msgstr "" 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 -#: 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 -msgid "Link" -msgstr "" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..69f7ad51fe 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:51\n" "Last-Translator: \n" "Language-Team: Indonesian\n" "Language: id_ID\n" @@ -19,274 +19,304 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 msgid "File comment" msgstr "" -#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055 -#: common/models.py:1056 part/models.py:2055 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "" @@ -2336,19 +2248,11 @@ msgstr "" 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 -#: 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 -msgid "Link" -msgstr "" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..703859ccbe 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:52\n" "Last-Translator: \n" "Language-Team: Italian\n" "Language: it_IT\n" @@ -33,260 +33,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Allegato" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "Seleziona file da allegare" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "Link" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "Link a URL esterno" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "Commento" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 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 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "Utente" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "data caricamento" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "Il nome del file non deve essere vuoto" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "Directory allegati non valida" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, 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:206 msgid "Filename missing extension" msgstr "Nome file estensione mancante" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "Esiste già un allegato con questo nome di file" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "Errore nella rinominazione del file" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "Descrizione" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "Descrizione (opzionale)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "Nome del file" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "Tedesco" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "Greco" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "Inglese" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "Spagnolo" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "Spagnolo (Messicano)" + +#: InvenTree/settings.py:675 msgid "French" msgstr "Francese" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "Ebraico" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "Italiano" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "Giapponese" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "Coreano" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "Olandese" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "Norvegese" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "Polacco" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "Portoghese" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "Russo" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "Svedese" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "Thailandese" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "Turco" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "Vietnamita" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "Cinese" @@ -302,838 +332,808 @@ 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:538 msgid "Delete Item" -msgstr "" +msgstr "Cancella elemento" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 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:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" -msgstr "" +msgstr "Modifica informazioni utente" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" -msgstr "" +msgstr "Imposta Password" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" -msgstr "" +msgstr "Le password devono coincidere" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" -msgstr "" +msgstr "Assegnazione Completa" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,1511 @@ 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 +#: common/forms.py:34 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 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:47 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 "" - -#: company/models.py:131 company/models.py:348 company/models.py:564 -#: order/models.py:160 part/models.py:715 -#: 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 -msgid "Link" -msgstr "" +msgstr "Punto di contatto" #: 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:874 +#: 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 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:861 +#: 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:1366 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:1073 +#: templates/js/translated/stock.js:2002 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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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:584 msgid "Download Image" -msgstr "" +msgstr "Download Immagine" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, 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:632 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 +#: label/api.py:57 report/api.py:203 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" @@ -3039,9 +2931,9 @@ 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 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" -msgstr "" +msgstr "Filtri" #: label/models.py:318 msgid "Query filters (comma-separated list of key=value pairs" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" -msgstr "" +msgstr "Seleziona la posizione di destinazione per gli elementi ricevuti" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" -msgstr "" +msgstr "La destinazione deve essere specificata" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,52 +3222,50 @@ 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 +3322,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,59 +3339,64 @@ 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 "Seleziona l'articolo del fornitore" + +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 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 "" +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 +3410,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 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3530,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3754,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:1134 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:858 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 +4227,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 +4262,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4768,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4940,12 +4851,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 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5020,17 +4931,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "Esporta Distinta base" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" -msgstr "" +msgstr "Modifica Categoria Articoli" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" -msgstr "" +msgstr "Elimina categoria" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" -msgstr "" +msgstr "La Categoria articoli è stata eliminata" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" -msgstr "" +msgstr "Crea Template Parametro Categoria" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" -msgstr "" +msgstr "Modifica Modello Parametro Categoria" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" -msgstr "" +msgstr "Elimina Modello Parametro Categoria" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" -msgstr "" +msgstr "Data" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 msgid "Fail" +msgstr "Fallito" + +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" 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 +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +msgstr "Seriale" + +#: 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:1276 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:686 +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:556 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:452 +#: stock/serializers.py:584 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:462 +#: stock/serializers.py:594 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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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: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 +5893,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:648 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:318 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:298 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 +6010,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,180 +6084,161 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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,140 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" -msgstr "" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" +msgstr "Modifica" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" -msgstr "" +msgid "Username" +msgstr "Nome utente" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "Nome" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" +msgstr "Cognome" + +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" -msgstr "" +msgstr "Verificato" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" -msgstr "" +msgstr "Non verificato" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" -msgstr "" +msgstr "Principale" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" -msgstr "" +msgstr "Rendi principale" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 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:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" -msgstr "" +msgstr "Rimuovi" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 msgid "Warning:" +msgstr "Attenzione:" + +#: templates/InvenTree/settings/user.html:95 +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: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:102 +msgid "Add Email Address" +msgstr "Aggiungi indirizzo email" -#: templates/InvenTree/settings/user.html:88 -msgid "Add E-mail Address" -msgstr "" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" +msgstr "Inserisci il tuo indirizzo email" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" -msgstr "" +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "Aggiungi Email" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,151 +6447,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 +6610,108 @@ 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/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +msgstr "Aggiungi allegato" + +#: 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,437 +6722,447 @@ 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 "" - -#: 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "Modifica allegato" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "Elimina allegato" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +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:1328 +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:1557 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:1611 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:1604 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:1333 templates/js/translated/label.js:134 +#: templates/js/translated/report.js:225 +msgid "Select Parts" +msgstr "Seleziona Articoli" + +#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7170,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 +7182,1025 @@ 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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" -msgstr "" +msgstr "Azione Vietata" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" -msgstr "" +msgstr "Crea operazione non consentita" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" -msgstr "" +msgstr "Operazione di aggiornamento non consentita" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" -msgstr "" +msgstr "Operazione di eliminazione non consentita" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "Inserisci un numero valido" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" -msgstr "" +msgstr "Nessun risultato trovato" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" -msgstr "" +msgstr "Ricerca" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 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 "NO" + +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" msgstr "" #: 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" +msgstr "Prezzo Totale" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" -msgstr "" +msgstr "Cliente non valido" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" -msgstr "" +msgstr "Nessun ordine di vendita trovato" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" -msgstr "" +msgstr "Modifica posizione giacenza" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "Conferma Operazione Eliminazione" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" -msgstr "" +msgstr "Elimina posizione giacenza" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" -msgstr "" - -#: templates/js/translated/order.js:1514 -msgid "Fulfilled" -msgstr "" +msgstr "Nessun posizione specificata" #: templates/js/translated/order.js:1557 +msgid "Fulfilled" +msgstr "Soddisfatto" + +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 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:1614 templates/js/translated/order.js:1793 msgid "Calculate price" -msgstr "" +msgstr "Calcola il prezzo" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" +msgstr "elementi selezionati" + +#: templates/js/translated/report.js:75 +msgid "Select Report Template" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "Posizione giacenza principale" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "Nuova posizione giacenza" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "Inserisci quantità iniziale per questo articolo in giacenza" + +#: templates/js/translated/stock.js:225 +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:368 +msgid "Created new stock item" +msgstr "Crea nuova allocazione magazzino" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "Creato più elementi stock" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "Esporta giacenza" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" -msgstr "" +msgstr "Includi sotto allocazioni" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 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:474 msgid "Transfer Stock" -msgstr "" +msgstr "Trasferisci giacenza" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" -msgstr "" +msgstr "Sposta" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" -msgstr "" +msgstr "Conta giacenza" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" -msgstr "" +msgstr "Conta" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" -msgstr "" +msgstr "Rimuovi giacenza" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" -msgstr "" +msgstr "Prendi" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" -msgstr "" +msgstr "Aggiungi giacenza" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 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:496 templates/stock_table.html:56 msgid "Delete Stock" -msgstr "" +msgstr "Elimina Stock" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" -msgstr "" +msgstr "Specificare la quantità di magazzino" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 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:783 msgid "PASS" -msgstr "" +msgstr "PASS" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" -msgstr "" +msgstr "FAIL" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" -msgstr "" +msgstr "NESSUN RISULTATO" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" -msgstr "" +msgstr "Aggiungi risultato test" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" -msgstr "" +msgstr "Nessun risultato di prova trovato" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" -msgstr "" +msgstr "In produzione" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" -msgstr "" +msgstr "Installato nell'elemento stock" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" -msgstr "" +msgstr "Spedito al cliente" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" -msgstr "" +msgstr "Assegnato all'ordine di vendita" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" -msgstr "" +msgstr "Nessuna giacenza impostata" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 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:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" -msgstr "" +msgstr "Articolo stock assegnato al cliente" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" -msgstr "" +msgstr "L'articolo stock è scaduto" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 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:1196 msgid "Stock item has been allocated" -msgstr "" +msgstr "L'articolo stock è stato allocato" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 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:1207 msgid "Stock item has been rejected" -msgstr "" +msgstr "L'articolo stock è stato rifiutato" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" -msgstr "" +msgstr "Esaurito" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" -msgstr "" +msgstr "Inventario" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" -msgstr "" +msgstr "elementi" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" -msgstr "" +msgstr "posizione" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" -msgstr "" +msgstr "Posizione non definita" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" -msgstr "" +msgstr "Data non valida" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" -msgstr "" +msgstr "La posizione non esiste più" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" -msgstr "" +msgstr "Aggiunto" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" -msgstr "" +msgstr "Rimosso" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8017,303 +8214,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 +8532,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..ac1c826905 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:52\n" "Last-Translator: \n" "Language-Team: Japanese\n" "Language: ja_JP\n" @@ -33,260 +33,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "添付ファイル" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "添付ファイルを選択" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "コメント:" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 msgid "File comment" msgstr "ファイルコメント" -#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055 -#: common/models.py:1056 part/models.py:2055 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "ユーザー" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "アップロード日時" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "説明" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "説明 (オプション)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "ドイツ語" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "英語" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "フランス語" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "ポーランド語" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "トルコ語" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "" @@ -2336,19 +2248,11 @@ msgstr "" 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 -#: 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 -msgid "Link" -msgstr "" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "メーカー・パーツ" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..d9767918dd 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:51\n" "Last-Translator: \n" "Language-Team: Korean\n" "Language: ko_KR\n" @@ -33,260 +33,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 msgid "File comment" msgstr "" -#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055 -#: common/models.py:1056 part/models.py:2055 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "" @@ -2336,19 +2248,11 @@ msgstr "" 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 -#: 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 -msgid "Link" -msgstr "" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..5491eac020 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:51\n" "Last-Translator: \n" "Language-Team: Dutch\n" "Language: nl_NL\n" @@ -33,260 +33,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Bijlage" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "Bestand als bijlage selecteren" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "Link naar externe URL" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "Opmerking" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 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 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "Gebruiker" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "uploaddatum" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "Bestandsnaam mag niet leeg zijn" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "Fout bijlagemap" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Bestandsnaam bevat illegale teken '{c}'" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "Bestandsnaam mist extensie" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "Bijlage met deze bestandsnaam bestaat al" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "Fout bij hernoemen bestand" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "Omschrijving" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "Omschrijving (optioneel)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "Bestandsnaam" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "Duits" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "Grieks" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "Engels" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "Spaans" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "Frans" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "Hebreeuws" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "Italiaans" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "Japans" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "Koreaans" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "Nederlands" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "Noors" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "Pools" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "Russisch" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "Zweeds" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "Thais" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "Turks" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "Vietnamees" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "Chinees" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "Verwijder item" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 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:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "Gebruikersgegevens bewerken" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Wachtwoord instellen" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "Wachtwoordvelden komen niet overeen" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "Systeeminformatie" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "" @@ -2336,19 +2248,11 @@ msgstr "" 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 -#: 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 -msgid "Link" -msgstr "" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" +msgstr "Serienummer" + +#: report/templates/report/inventree_test_report_base.html:88 msgid "Test Results" msgstr "" -#: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "Geen voorraadlocatie ingesteld" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..379bd5150e 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:51\n" "Last-Translator: \n" "Language-Team: Norwegian\n" "Language: no_NO\n" @@ -33,260 +33,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Vedlegg" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "Velg fil å legge ved" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "Kommenter" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 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 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "Bruker" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "opplastet dato" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "Beskrivelse" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "Beskrivelse (valgfritt)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "Tysk" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "Gresk" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "Engelsk" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "Spansk" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "Fransk" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "Hebraisk" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "Italiensk" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "Japansk" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "Koreansk" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "Nederlandsk" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "Norsk" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "Polsk" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "Russisk" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "Svensk" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "Thailandsk" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "Tyrkisk" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "Vietnamesisk" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "Kinesisk" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "" @@ -2336,19 +2248,11 @@ msgstr "" 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 -#: 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 -msgid "Link" -msgstr "" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..035a0f00a1 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:52\n" "Last-Translator: \n" "Language-Team: Polish\n" "Language: pl_PL\n" @@ -33,260 +33,290 @@ 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:595 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 "Potwierdzenie adresu 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 "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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Załącznik" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "Wybierz plik do załączenia" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "Łącze" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "Link do zewnętrznego adresu URL" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "Komentarz" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 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 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "Użytkownik" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "data przesłania" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" -msgstr "" +msgstr "Błąd zmiany nazwy pliku" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "Opis" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "Opis (opcjonalny)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" -msgstr "" +msgstr "Nazwa pliku" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "Niemiecki" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "Grecki" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "Angielski" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "Hiszpański" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "Hiszpański (Meksyk)" + +#: InvenTree/settings.py:675 msgid "French" msgstr "Francuski" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "Hebrajski" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "Włoski" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "Japoński" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "Koreański" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "Holenderski" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "Norweski" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "Polski" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "Portugalski" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "Rosyjski" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "Szwedzki" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "Tajski" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "Turecki" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "Wietnamski" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "Chiński" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "Usuń element" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 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:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "Edytuj informacje użytkownika" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Ustaw hasło" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "Hasła muszą być zgodne" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "Informacja systemowa" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "Dodaj załącznik" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "Edytuj załącznik" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "Usuń załącznik" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,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:47 msgid "Email" msgstr "Adres E-Mail" @@ -2336,19 +2248,11 @@ msgstr "Kontakt" 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 -#: 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 -msgid "Link" -msgstr "Łącze" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "Opakowanie" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "Firmy" msgid "New Company" msgstr "Nowa firma" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "Pobierz obraz" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,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" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "Filtry" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "Wiersz" msgid "Select Supplier Part" msgstr "Wybierz dostawcę części" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "Przedmioty" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "Otrzymane elementy" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "Dodaj element zamówienia" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received Items" +msgstr "Otrzymane elementy" + +#: 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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "Dodaj powiązaną część" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +msgstr "Szczegóły" + +#: 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 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "Edytuj kategorię części" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "Filtr części" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" +msgstr "Numer Seryjny" + +#: report/templates/report/inventree_test_report_base.html:88 msgid "Test Results" msgstr "" -#: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "Data" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "Zaliczone" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -msgstr "" - -#: stock/templates/stock/navbar.html:14 -msgid "History" -msgstr "Historia" - -#: 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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +msgstr "Dodaj załącznik" + +#: 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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "Edytuj załącznik" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "Usuń załącznik" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "Cena zakupu" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "Oblicz cenę" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "Zaktualizuj cenę jednostkową" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "Dodaj stan" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "Dodaj" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "Dodano" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..61da5feab6 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:51\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" @@ -37,7 +36,7 @@ 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 +#: templates/js/translated/forms.js:595 msgid "Confirm" msgstr "" @@ -115,72 +114,95 @@ msgstr "" msgid "Number of unique serial number ({s}) must match quantity ({q})" msgstr "" -#: InvenTree/models.py:109 stock/models.py:1875 +#: InvenTree/models.py:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" -#: InvenTree/models.py:110 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:112 templates/js/translated/attachment.js:91 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "" -#: InvenTree/models.py:112 +#: InvenTree/models.py:137 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 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 #: report/templates/report/inventree_test_report_base.html:96 -#: templates/js/translated/stock.js:2054 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "" -#: InvenTree/models.py:122 +#: InvenTree/models.py:147 msgid "upload date" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:165 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:175 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:178 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:185 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:192 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:227 +#: InvenTree/models.py:255 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 +#: InvenTree/models.py:271 InvenTree/models.py:272 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/js/translated/company.js:637 templates/js/translated/part.js:497 -#: templates/js/translated/part.js:634 templates/js/translated/part.js:1271 -#: templates/js/translated/stock.js:1847 +#: 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:1877 msgid "Name" msgstr "" -#: InvenTree/models.py:250 build/models.py:207 +#: InvenTree/models.py:278 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 @@ -188,108 +210,113 @@ msgstr "" #: part/templates/part/set_category.html:14 report/models.py:194 #: report/models.py:553 report/models.py:592 #: 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 -#: 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 +#: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "" -#: InvenTree/models.py:251 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:259 +#: InvenTree/models.py:287 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 "" -#: InvenTree/serializers.py:251 +#: InvenTree/serializers.py:285 msgid "Filename" msgstr "" -#: InvenTree/settings.py:654 +#: InvenTree/settings.py:670 msgid "German" msgstr "" -#: InvenTree/settings.py:655 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "" -#: InvenTree/settings.py:656 +#: InvenTree/settings.py:672 msgid "English" msgstr "" -#: InvenTree/settings.py:657 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:658 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "" -#: InvenTree/settings.py:659 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:660 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "" -#: InvenTree/settings.py:661 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:662 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "" -#: InvenTree/settings.py:663 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:664 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:665 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "" -#: InvenTree/settings.py:666 +#: InvenTree/settings.py:683 msgid "Portugese" msgstr "" -#: InvenTree/settings.py:667 +#: InvenTree/settings.py:684 msgid "Russian" msgstr "" -#: InvenTree/settings.py:668 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:669 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "" -#: InvenTree/settings.py:670 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:671 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:672 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "" @@ -414,7 +441,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 "" @@ -474,27 +501,27 @@ msgstr "" msgid "Overage must be an integer value or a percentage" msgstr "" -#: InvenTree/views.py:536 +#: InvenTree/views.py:538 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:585 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:600 templates/InvenTree/settings/user.html:15 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:611 templates/InvenTree/settings/user.html:19 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:630 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:863 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "" @@ -540,33 +567,33 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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 #: 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:1502 templates/js/translated/part.js:1625 -#: templates/js/translated/part.js:1703 templates/js/translated/stock.js:347 -#: templates/js/translated/stock.js:2039 templates/js/translated/stock.js:2141 +#: templates/js/translated/order.js:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 msgid "Quantity" msgstr "" @@ -575,8 +602,8 @@ 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 -#: templates/js/translated/stock.js:348 +#: stock/serializers.py:307 templates/js/translated/stock.js:224 +#: templates/js/translated/stock.js:378 msgid "Serial Numbers" msgstr "" @@ -618,8 +645,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,12 +657,12 @@ 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/order.js:864 templates/js/translated/order.js:1451 +#: templates/js/translated/bom.js:435 templates/js/translated/build.js:1119 +#: templates/js/translated/order.js:886 templates/js/translated/order.js:1473 msgid "Reference" msgstr "" @@ -654,9 +683,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 +695,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/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/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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 msgid "Part" msgstr "" @@ -730,7 +759,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 "" @@ -739,7 +768,7 @@ 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 +#: part/templates/part/detail.html:86 templates/js/translated/order.js:1104 msgid "Creation Date" msgstr "" @@ -773,7 +802,7 @@ msgstr "" #: 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 +#: templates/js/translated/build.js:1680 templates/js/translated/order.js:700 msgid "Responsible" msgstr "" @@ -784,25 +813,26 @@ 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 -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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 msgid "Notes" msgstr "" @@ -849,7 +879,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,14 +887,14 @@ 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 #: 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 +#: templates/js/translated/order.js:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 msgid "Stock Item" msgstr "" @@ -884,97 +914,97 @@ 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 #: 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/stock.js:480 templates/js/translated/stock.js:1221 -#: templates/js/translated/stock.js:1931 +#: templates/js/translated/order.js:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 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:240 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 +#: templates/js/translated/order.js:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 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:233 +#: 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 "" @@ -1047,7 +1077,7 @@ msgstr "" #: 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 +#: templates/js/translated/order.js:1109 msgid "Target Date" msgstr "" @@ -1062,16 +1092,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 "" @@ -1083,7 +1113,7 @@ msgstr "" #: 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 +#: templates/js/translated/order.js:1051 msgid "Sales Order" msgstr "" @@ -1158,7 +1188,7 @@ 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 +#: templates/js/translated/order.js:432 templates/js/translated/order.js:974 msgid "Destination" msgstr "" @@ -1172,9 +1202,9 @@ 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/stock.js:1240 templates/js/translated/stock.js:2194 +#: templates/js/translated/table_filters.js:151 +#: templates/js/translated/table_filters.js:233 msgid "Batch" msgstr "" @@ -1193,7 +1223,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 +1243,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 +1302,13 @@ 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_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 "" @@ -1283,7 +1316,7 @@ msgstr "" msgid "Build Notes" msgstr "" -#: build/templates/build/detail.html:298 build/templates/build/detail.html:489 +#: build/templates/build/detail.html:298 build/templates/build/detail.html:453 #: company/templates/company/detail.html:188 #: company/templates/company/detail.html:215 #: order/templates/order/purchase_order_detail.html:80 @@ -1295,45 +1328,15 @@ msgstr "" msgid "Edit Notes" msgstr "" -#: build/templates/build/detail.html:448 -#: 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 -#: templates/attachment_button.html:4 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:467 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:474 -#: 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 -#: templates/js/translated/order.js:1243 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:475 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:513 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:514 +#: build/templates/build/detail.html:478 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 +1356,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 +1380,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 "" @@ -1433,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1450,703 +1465,704 @@ 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:49 #: 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:47 part/views.py:212 +#: part/views.py:858 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:859 msgid "Match Fields" msgstr "" @@ -2164,13 +2180,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:47 #: 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:45 msgid "Previous Step" msgstr "" @@ -2191,7 +2207,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 +2232,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:47 msgid "Email" msgstr "" @@ -2232,14 +2248,6 @@ msgstr "" 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:536 -#: templates/js/translated/company.js:825 templates/js/translated/part.js:983 -msgid "Link" -msgstr "" - #: company/models.py:131 msgid "Link to external company information" msgstr "" @@ -2272,8 +2280,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 +2289,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 +2302,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:874 +#: 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 "" @@ -2337,8 +2345,8 @@ 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 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2346,9 +2354,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 +2374,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 +#: part/bom.py:220 part/bom.py:248 templates/js/translated/order.js:861 +#: 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 +2407,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 +2421,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:1366 msgid "Packaging" msgstr "" @@ -2429,17 +2438,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,10 +2485,10 @@ 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 -#: templates/js/translated/stock.js:1972 +#: 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:1073 +#: templates/js/translated/stock.js:2002 msgid "Customer" msgstr "" @@ -2488,7 +2497,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 +2510,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 +2518,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 +2547,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 +2556,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 +2579,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 +2611,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 +2627,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 +2639,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 +2655,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 +2693,7 @@ msgid "Delete parameters" msgstr "" #: company/templates/company/manufacturer_part.html:185 -#: part/templates/part/detail.html:989 +#: part/templates/part/detail.html:976 msgid "Add Parameter" msgstr "" @@ -2687,20 +2705,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:1323 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 "" @@ -2716,7 +2750,7 @@ 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 +#: templates/js/translated/stock.js:354 msgid "New Stock Item" msgstr "" @@ -2737,7 +2771,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:1717 msgid "Add Price Break" msgstr "" @@ -2745,11 +2779,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:1779 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:1765 msgid "Edit Price Break" msgstr "" @@ -2762,12 +2796,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:509 +#: templates/js/translated/stock.js:1162 templates/navbar.html:26 msgid "Stock" msgstr "" @@ -2776,13 +2813,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:1901 +#: 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 +2841,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,20 +2857,20 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:649 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:681 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:697 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" @@ -3012,7 +3061,7 @@ msgstr "" msgid "Target date for order completion. Order will be overdue after this date." msgstr "" -#: order/models.py:582 templates/js/translated/order.js:1092 +#: order/models.py:582 templates/js/translated/order.js:1114 msgid "Shipment Date" msgstr "" @@ -3037,7 +3086,7 @@ msgid "Line item notes" msgstr "" #: order/models.py:768 order/models.py:856 -#: templates/js/translated/order.js:1144 +#: templates/js/translated/order.js:1166 msgid "Order" msgstr "" @@ -3045,8 +3094,8 @@ msgstr "" #: 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 +#: templates/js/translated/order.js:638 templates/js/translated/stock.js:1300 +#: templates/js/translated/stock.js:1983 msgid "Purchase Order" msgstr "" @@ -3056,7 +3105,7 @@ 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 +#: templates/js/translated/order.js:429 templates/js/translated/order.js:954 msgid "Received" msgstr "" @@ -3064,9 +3113,9 @@ 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 -#: templates/js/translated/stock.js:1324 +#: 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:1354 msgid "Purchase Price" msgstr "" @@ -3127,47 +3176,47 @@ msgstr "" msgid "Enter stock allocation quantity" msgstr "" -#: order/serializers.py:166 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:201 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:207 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:217 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:241 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" -#: order/serializers.py:567 +#: order/serializers.py:569 msgid "Sale price currency" msgstr "" @@ -3313,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:16 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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:25 +#: 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:23 #, 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:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3368,7 +3421,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:695 templates/js/translated/order.js:1097 +#: templates/js/translated/order.js:695 templates/js/translated/order.js:1119 msgid "Items" msgstr "" @@ -3386,14 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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/purchase_order_detail.html:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:191 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3437,7 +3501,7 @@ msgid "This Sales Order has not been fully allocated" msgstr "" #: order/templates/order/sales_order_base.html:121 -#: templates/js/translated/order.js:1064 +#: templates/js/translated/order.js:1086 msgid "Customer Reference" msgstr "" @@ -3591,19 +3655,19 @@ msgstr "" msgid "Updated {part} unit-price to {price} and quantity to {qty}" msgstr "" -#: part/api.py:731 +#: part/api.py:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:735 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:750 +#: part/api.py:777 msgid "Specify location for initial part stock" msgstr "" -#: part/api.py:781 part/api.py:785 part/api.py:800 part/api.py:804 +#: part/api.py:808 part/api.py:812 part/api.py:827 part/api.py:831 msgid "This field is required" msgstr "" @@ -3672,7 +3736,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 +3760,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 +3788,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 +3801,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 +3868,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 +3880,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:1134 msgid "IPN" msgstr "" @@ -3831,7 +3894,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 +3951,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 +3993,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 -#: templates/js/translated/stock.js:828 +#: part/models.py:2310 templates/js/translated/part.js:1467 +#: templates/js/translated/stock.js:858 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 +4213,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 +4229,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 +4311,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 +4331,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 +4398,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 +4475,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 +4483,124 @@ 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:755 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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:939 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:1091 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1103 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1115 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1204 +#: part/templates/part/detail.html:1152 #, 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:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:15 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 msgid "Import Parts from File" msgstr "" @@ -4612,10 +4698,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 "" @@ -4624,12 +4710,12 @@ msgstr "" 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 +#: part/templates/part/part_base.html:172 templates/js/translated/order.js:1546 +#: 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 +4731,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 +4771,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 +4805,30 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -4831,9 +4933,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,132 +4952,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: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:502 msgid "None" msgstr "" -#: part/views.py:626 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:728 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:754 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:757 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:769 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:799 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:841 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:852 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:925 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1261 +#: part/views.py:1196 msgid "Export Bill of Materials" msgstr "" -#: part/views.py:1313 +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1320 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1329 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1478 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1488 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1495 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1554 templates/js/translated/part.js:309 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1592 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1598 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1607 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1708 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1764 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1786 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1862 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1870 +#: part/views.py:1805 msgid "Delete Internal Price Break" msgstr "" @@ -5072,21 +5166,16 @@ 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 +#: 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 +#: templates/js/translated/order.js:1288 templates/js/translated/order.js:1377 msgid "Serial Number" msgstr "" @@ -5095,17 +5184,17 @@ msgid "Test Results" msgstr "" #: report/templates/report/inventree_test_report_base.html:93 -#: stock/models.py:1856 +#: stock/models.py:1855 msgid "Test" msgstr "" #: report/templates/report/inventree_test_report_base.html:94 -#: stock/models.py:1862 +#: stock/models.py:1861 msgid "Result" msgstr "" #: report/templates/report/inventree_test_report_base.html:97 -#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1887 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" @@ -5118,21 +5207,22 @@ msgid "Fail" msgstr "" #: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 msgid "Installed Items" msgstr "" #: report/templates/report/inventree_test_report_base.html:137 -#: templates/js/translated/stock.js:2147 +#: templates/js/translated/stock.js:2177 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 +#: templates/js/translated/stock.js:1276 msgid "Expiry Date" msgstr "" @@ -5180,241 +5270,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:686 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:556 msgid "StockItem primary key value" msgstr "" -#: stock/serializers.py:574 +#: stock/serializers.py:584 msgid "Stock transaction notes" msgstr "" -#: stock/serializers.py:584 +#: stock/serializers.py:594 msgid "A list of stock items must be provided" msgstr "" @@ -5435,6 +5525,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 "" @@ -5458,15 +5549,15 @@ msgstr "" msgid "Install Stock Item" msgstr "" -#: stock/templates/stock/item.html:318 stock/templates/stock/item.html:343 +#: stock/templates/stock/item.html:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:363 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:377 +#: stock/templates/stock/item.html:338 msgid "Delete Test Result" msgstr "" @@ -5556,13 +5647,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 "" @@ -5640,7 +5731,7 @@ msgid "This StockItem expires on %(item.expiry_date)s" msgstr "" #: stock/templates/stock/item_base.html:395 -#: templates/js/translated/stock.js:1259 +#: templates/js/translated/stock.js:1289 msgid "Last Updated" msgstr "" @@ -5656,7 +5747,7 @@ msgstr "" msgid "Tests" msgstr "" -#: stock/templates/stock/item_base.html:504 +#: stock/templates/stock/item_base.html:505 msgid "Edit Stock Status" msgstr "" @@ -5744,17 +5835,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 +5860,14 @@ msgstr "" msgid "Loading..." msgstr "" +#: stock/templates/stock/stock_sidebar.html:5 +msgid "Stock Tracking" +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 "" @@ -5850,7 +5942,7 @@ msgstr "" msgid "Uninstall Stock Items" msgstr "" -#: stock/views.py:760 templates/js/translated/stock.js:618 +#: stock/views.py:760 templates/js/translated/stock.js:648 msgid "Confirm stock adjustment" msgstr "" @@ -5858,7 +5950,7 @@ msgstr "" msgid "Uninstalled stock items" msgstr "" -#: stock/views.py:793 templates/js/translated/stock.js:288 +#: stock/views.py:793 templates/js/translated/stock.js:318 msgid "Edit Stock Item" msgstr "" @@ -5870,7 +5962,7 @@ msgstr "" msgid "Create new Stock Item" msgstr "" -#: stock/views.py:1186 templates/js/translated/stock.js:268 +#: stock/views.py:1186 templates/js/translated/stock.js:298 msgid "Duplicate Stock Item" msgstr "" @@ -6023,6 +6115,7 @@ msgid "Server Settings" msgstr "" #: templates/InvenTree/settings/login.html:9 +#: templates/InvenTree/settings/sidebar.html:28 msgid "Login Settings" msgstr "" @@ -6063,7 +6156,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 +6186,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:12 +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 +6247,140 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:16 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - #: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:51 +#: templates/InvenTree/settings/user.html:55 msgid "The following email addresses are associated with your account:" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:73 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:75 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:81 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:82 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:83 -#: templates/InvenTree/settings/user.html:150 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:90 +#: templates/InvenTree/settings/user.html:94 msgid "Warning:" msgstr "" -#: templates/InvenTree/settings/user.html:91 +#: templates/InvenTree/settings/user.html:95 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:102 msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:108 +#: templates/InvenTree/settings/user.html:112 msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:110 +#: templates/InvenTree/settings/user.html:114 msgid "Add Email" msgstr "" -#: templates/InvenTree/settings/user.html:120 +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:125 +#: templates/InvenTree/settings/user.html:129 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:163 msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:164 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:183 -msgid "Select language" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:199 -#, python-format -msgid "%(lang_translated)s%% translated" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:200 +msgid "IP Address" msgstr "" #: templates/InvenTree/settings/user.html:201 -msgid "No translations available" +msgid "Device" msgstr "" -#: templates/InvenTree/settings/user.html:208 -msgid "Set Language" +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" msgstr "" -#: templates/InvenTree/settings/user.html:210 -msgid "Some languages are not complete" -msgstr "" - -#: templates/InvenTree/settings/user.html:212 -msgid "Show only sufficent" -msgstr "" - -#: templates/InvenTree/settings/user.html:214 -msgid "Show them too" -msgstr "" - -#: templates/InvenTree/settings/user.html:221 -msgid "Help the translation efforts!" -msgstr "" - -#: templates/InvenTree/settings/user.html:222 +#: templates/InvenTree/settings/user.html:211 #, python-format -msgid "Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged." +msgid "%(time)s ago (this session)" msgstr "" -#: templates/InvenTree/settings/user.html:230 +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 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 "" @@ -6255,6 +6393,52 @@ msgstr "" msgid "Set Theme" msgstr "" +#: templates/InvenTree/settings/user_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 +#, python-format +msgid "%(lang_translated)s%% translated" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:81 +msgid "No translations available" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:88 +msgid "Set Language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 +msgid "Help the translation efforts!" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:102 +#, 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_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6263,20 +6447,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 +6538,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 +6636,19 @@ msgstr "" msgid "View in administration panel" msgstr "" -#: templates/base.html:94 +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +msgstr "" + +#: 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 +6674,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,75 +6727,87 @@ msgstr "" msgid "Remote image must not exceed maximum allowable file size" msgstr "" -#: templates/js/translated/api.js:184 templates/js/translated/modals.js:1034 +#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1034 msgid "No Response" msgstr "" -#: templates/js/translated/api.js:185 templates/js/translated/modals.js:1035 +#: templates/js/translated/api.js:186 templates/js/translated/modals.js:1035 msgid "No response from the InvenTree server" msgstr "" -#: templates/js/translated/api.js:191 +#: templates/js/translated/api.js:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:192 +#: templates/js/translated/api.js:193 msgid "API request returned error code 400" msgstr "" -#: templates/js/translated/api.js:196 templates/js/translated/modals.js:1044 +#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1044 msgid "Error 401: Not Authenticated" msgstr "" -#: templates/js/translated/api.js:197 templates/js/translated/modals.js:1045 +#: templates/js/translated/api.js:198 templates/js/translated/modals.js:1045 msgid "Authentication credentials not supplied" msgstr "" -#: templates/js/translated/api.js:201 templates/js/translated/modals.js:1049 +#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1049 msgid "Error 403: Permission Denied" msgstr "" -#: templates/js/translated/api.js:202 templates/js/translated/modals.js:1050 +#: templates/js/translated/api.js:203 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 +#: templates/js/translated/api.js:207 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 +#: templates/js/translated/api.js:208 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 +#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1059 msgid "Error 408: Timeout" msgstr "" -#: templates/js/translated/api.js:212 templates/js/translated/modals.js:1060 +#: templates/js/translated/api.js:213 templates/js/translated/modals.js:1060 msgid "Connection timeout while requesting data from server" msgstr "" -#: templates/js/translated/api.js:215 +#: templates/js/translated/api.js:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:216 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:95 -msgid "Upload Date" +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" msgstr "" #: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 +msgid "Upload Date" +msgstr "" + +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:115 +#: templates/js/translated/attachment.js:185 msgid "Delete attachment" msgstr "" @@ -6645,7 +6848,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 "" @@ -6665,7 +6868,7 @@ msgstr "" msgid "Unlink" msgstr "" -#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:570 +#: templates/js/translated/barcode.js:397 templates/js/translated/stock.js:600 msgid "Remove stock item" msgstr "" @@ -6707,91 +6910,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/order.js:1298 +#: templates/js/translated/bom.js:608 templates/js/translated/build.js:1183 +#: templates/js/translated/order.js:1320 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 "" @@ -6844,7 +7055,7 @@ msgstr "" msgid "No build order allocations found" msgstr "" -#: templates/js/translated/build.js:424 templates/js/translated/order.js:1172 +#: templates/js/translated/build.js:424 templates/js/translated/order.js:1194 msgid "Location not specified" msgstr "" @@ -6853,12 +7064,12 @@ 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 +#: templates/js/translated/order.js:1327 msgid "Edit stock allocation" msgstr "" #: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 -#: templates/js/translated/order.js:1306 +#: templates/js/translated/order.js:1328 msgid "Delete stock allocation" msgstr "" @@ -6870,10 +7081,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 "" @@ -6883,11 +7090,11 @@ 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 +#: templates/js/translated/build.js:1756 templates/js/translated/order.js:1557 msgid "Allocated" msgstr "" -#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1589 +#: templates/js/translated/build.js:1190 templates/js/translated/order.js:1611 msgid "Build stock" msgstr "" @@ -6895,7 +7102,7 @@ msgstr "" msgid "Order stock" msgstr "" -#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1582 +#: templates/js/translated/build.js:1197 templates/js/translated/order.js:1604 msgid "Allocate stock" msgstr "" @@ -6936,9 +7143,9 @@ 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/stock.js:1841 +#: templates/js/translated/build.js:1593 templates/js/translated/part.js:966 +#: templates/js/translated/part.js:1377 templates/js/translated/stock.js:1094 +#: templates/js/translated/stock.js:1871 msgid "Select" msgstr "" @@ -6946,7 +7153,7 @@ msgstr "" msgid "Build order is overdue" msgstr "" -#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2060 +#: templates/js/translated/build.js:1674 templates/js/translated/stock.js:2090 msgid "No user information" msgstr "" @@ -6962,7 +7169,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 +7181,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,61 +7279,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: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 "" -#: templates/js/translated/forms.js:349 templates/js/translated/forms.js:364 -#: templates/js/translated/forms.js:378 templates/js/translated/forms.js:392 +#: templates/js/translated/forms.js:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:351 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:366 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:380 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:394 +#: templates/js/translated/forms.js:395 msgid "View operation not allowed" msgstr "" -#: templates/js/translated/forms.js:679 +#: templates/js/translated/forms.js:680 msgid "Enter a valid number" msgstr "" -#: templates/js/translated/forms.js:1071 templates/modals.html:19 +#: templates/js/translated/forms.js:1072 templates/modals.html:19 #: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1457 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1661 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1878 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7139,7 +7346,7 @@ msgid "NO" msgstr "" #: templates/js/translated/label.js:29 templates/js/translated/report.js:118 -#: templates/js/translated/stock.js:594 +#: templates/js/translated/stock.js:624 msgid "Select Stock Items" msgstr "" @@ -7295,11 +7502,11 @@ msgstr "" msgid "Export Order" msgstr "" -#: templates/js/translated/order.js:211 templates/js/translated/stock.js:393 +#: templates/js/translated/order.js:211 templates/js/translated/stock.js:423 msgid "Format" msgstr "" -#: templates/js/translated/order.js:212 templates/js/translated/stock.js:394 +#: templates/js/translated/order.js:212 templates/js/translated/stock.js:424 msgid "Select file format" msgstr "" @@ -7315,7 +7522,7 @@ msgstr "" msgid "Quantity to receive" msgstr "" -#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1643 +#: templates/js/translated/order.js:360 templates/js/translated/stock.js:1673 msgid "Stock Status" msgstr "" @@ -7343,301 +7550,317 @@ msgstr "" msgid "No purchase orders found" msgstr "" -#: templates/js/translated/order.js:652 templates/js/translated/order.js:1041 +#: templates/js/translated/order.js:652 templates/js/translated/order.js:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:750 templates/js/translated/order.js:1624 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:762 templates/js/translated/order.js:1635 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:801 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:828 templates/js/translated/order.js:1445 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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/order.js:904 templates/js/translated/order.js:1492 +#: 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 +#: templates/js/translated/order.js:919 templates/js/translated/order.js:1508 msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:975 templates/js/translated/order.js:1595 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:976 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:980 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1017 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1055 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1133 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1226 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1244 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1286 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1535 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1579 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1585 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1592 templates/js/translated/order.js:1771 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1596 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1719 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1779 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1793 +#: templates/js/translated/order.js:1815 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/stock.js:1802 +#: templates/js/translated/part.js:1140 templates/js/translated/part.js:1312 +#: templates/js/translated/stock.js:1832 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:1851 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:1895 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:816 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:817 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 "" @@ -7711,264 +7934,272 @@ msgstr "" msgid "Serialize Stock Item" msgstr "" -#: templates/js/translated/stock.js:90 +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" +msgstr "" + +#: templates/js/translated/stock.js:104 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:126 +#: templates/js/translated/stock.js:140 msgid "New Stock Location" msgstr "" -#: templates/js/translated/stock.js:189 +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 msgid "Enter initial quantity for this stock item" msgstr "" -#: templates/js/translated/stock.js:195 +#: templates/js/translated/stock.js:225 msgid "Enter serial numbers for new stock (or leave blank)" msgstr "" -#: templates/js/translated/stock.js:338 +#: templates/js/translated/stock.js:368 msgid "Created new stock item" msgstr "" -#: templates/js/translated/stock.js:351 +#: templates/js/translated/stock.js:381 msgid "Created multiple stock items" msgstr "" -#: templates/js/translated/stock.js:390 +#: templates/js/translated/stock.js:420 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:401 +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:402 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:444 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:445 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:451 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:452 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:457 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:461 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:462 users/models.py:200 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:466 templates/stock_table.html:56 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:555 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:595 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:753 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:755 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:760 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:782 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:808 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:865 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:972 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:976 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:980 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:984 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:990 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:1148 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:1153 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:1156 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:1160 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:1162 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:1166 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:1170 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:1177 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:1179 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:1181 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:1185 -#: templates/js/translated/table_filters.js:165 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:1235 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1308 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1346 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1367 templates/js/translated/stock.js:1415 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1455 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1482 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1484 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1658 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1672 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1673 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1897 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1919 -msgid "Details" -msgstr "" - -#: templates/js/translated/stock.js:1944 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1963 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1982 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:2000 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:2023 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:2031 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:2072 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:2073 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:2124 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:2175 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -7988,180 +8219,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 +8420,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 +8449,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 +8656,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..4a84b664f2 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:52\n" "Last-Translator: \n" "Language-Team: Russian\n" "Language: ru_RU\n" @@ -33,260 +33,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Вложения" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "Выберите файл для вложения" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "Ссылка на внешний URL" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "Комментарий" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 msgid "File comment" msgstr "Комментарий к файлу" -#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055 -#: common/models.py:1056 part/models.py:2055 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "Пользователь" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "дата загрузки" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" -msgstr "" +msgstr "Имя файла не должно быть пустым" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" -msgstr "" +msgstr "Неверная директория вложений" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "Описание" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "Описание (необязательно)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" -msgstr "" +msgstr "Имя файла" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "Немецкий" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "Греческий" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "Английский" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "Испанский" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "Французский" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "Иврит" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "Итальянский" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "Японский" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "Корейский" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "Голландский" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "Норвежский" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "Польский" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "Русский" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "Шведский" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "Тайский" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "Турецкий" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "Вьетнамский" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "Китайский" @@ -302,196 +332,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 "Снято со сборки" +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:538 msgid "Delete Item" msgstr "Удалить элемент" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "Установите флажок для подтверждения удаления элемента" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "Редактировать информацию о пользователе" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Установить пароль" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "Пароли должны совпадать" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "Информация о системе" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "" @@ -2336,19 +2248,11 @@ msgstr "" 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 -#: 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 -msgid "Link" -msgstr "" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..02e5fa5928 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:51\n" "Last-Translator: \n" "Language-Team: Swedish\n" "Language: sv_SE\n" @@ -33,260 +33,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Bilaga" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "Välj fil att bifoga" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "Kommentar" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 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 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "Användare" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "uppladdningsdatum" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "Filnamnet får inte vara tomt" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "Ogiltig katalog för bilaga" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "Filnamnet innehåller ogiltiga tecken '{c}'" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "Filnamn saknar ändelse" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "Det finns redan en bilaga med detta filnamn" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "Fel vid namnbyte av fil" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "Beskrivning" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "Beskrivning (valfritt)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "Filnamn" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "Tyska" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "Grekiska" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "Engelska" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "Spanska" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "Franska" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "Hebreiska" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "Italienska" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "Japanska" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "Koreanska" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "Nederländska" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "Norska" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "Polska" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "Ryska" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "Svenska" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "Thailändska" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "Turkiska" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "Vietnamesiska" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "Kinesiska" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "" @@ -2336,19 +2248,11 @@ msgstr "" 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 -#: 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 -msgid "Link" -msgstr "" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..b9039d5982 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:51\n" "Last-Translator: \n" "Language-Team: Thai\n" "Language: th_TH\n" @@ -33,260 +33,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 msgid "File comment" msgstr "" -#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055 -#: common/models.py:1056 part/models.py:2055 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "" @@ -2336,19 +2248,11 @@ msgstr "" 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 -#: 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 -msgid "Link" -msgstr "" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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_display.html:54 +msgid "Language Settings" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..c068a30029 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:52\n" "Last-Translator: \n" "Language-Team: Turkish\n" "Language: tr_TR\n" @@ -33,260 +33,290 @@ 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:595 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "Ek" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "Eklenecek dosyayı seç" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "Bağlantı" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "Harici URL'ye bağlantı" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "Yorum" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 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 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "Kullanıcı" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "yükleme tarihi" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "Açıklama" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "Açıklama (isteğe bağlı)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "Almanca" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "Yunanca" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "İngilizce" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "İspanyolca" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "Fransızca" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "İbranice" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "İtalyanca" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "Japonca" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "Korece" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "Flemenkçe" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "Norveççe" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "Polonyaca" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "Rusça" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "İsveççe" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "Tay dili" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "Türkçe" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "Çince" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "Ögeyi Sil" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 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:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "Kullanıcı Bilgisini Düzenle" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "Şifre Belirle" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "Parola alanları eşleşmelidir" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "Sistem Bilgisi" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "Dosya Ekle" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "Ek Düzenle" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "Silme İşlemini Onayla" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "Eki Sil" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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" @@ -1537,7 +1448,7 @@ msgstr "Dosya okurken hata (hatalı ölçüler)" msgid "Error reading file (data could be corrupted)" msgstr "Dosya okurken hata (veri bozulmuş olabilir)" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "Dosya" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,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:47 msgid "Email" msgstr "E-posta" @@ -2336,19 +2248,11 @@ msgstr "İletişim" 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 -#: 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 -msgid "Link" -msgstr "Bağlantı" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "Değer" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "Paketleme" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "Şirketler" msgid "New Company" msgstr "Yeni Şirket" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "Resmi İndirin" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, 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:632 msgid "Supplied URL is not a valid image file" msgstr "Sağlanan URL geçerli bir resim dosyası değil" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "Şablon için geçerli bir nesne sağlanmadı" @@ -2994,7 +2886,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" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "Filtreler" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "Tedarikçi Parçası Seçin" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "Ürünler" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received Items" +msgstr "" + +#: 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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +msgstr "Detaylar" + +#: 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 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "Hiçbiri" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "Parça Parametre Şablonu Oluştur" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "Parça Parametre Şablonu Düzenle" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "Parça Parametre Şablonu Sil" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "Kategori Parametre Şablonu Oluştur" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "Kategori Parametre Şablonu Düzenle" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "Kategori Parametre Şablonu Sil" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "Şablon adı" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" +msgstr "Seri Numara" + +#: report/templates/report/inventree_test_report_base.html:88 msgid "Test Results" msgstr "" -#: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +msgstr "Seri No" + +#: 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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 "Stok Kalemine Dönüştür" @@ -5986,104 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:25 msgid "Theme Settings" msgstr "Tema Ayarları" -#: templates/InvenTree/settings/user.html:174 +#: 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.html:181 +#: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "Dil Ayarları" -#: templates/InvenTree/settings/user.html:200 +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "Dili Ayarla" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "Ana Sayfa Ayarları" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +msgstr "Dosya Ekle" + +#: 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 "" @@ -6693,431 +6727,441 @@ 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 "Rapor Şablonu Seç" - -#: templates/js/report.js:70 templates/js/translated/report.js:90 -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 -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 "Seçili stok kalemleri için rapor şablonu bulunamadı" - -#: 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 "Seçili yapım işleri için rapor şablonu bulunamadı" - -#: templates/js/report.js:205 templates/js/translated/build.js:948 -#: templates/js/translated/label.js:134 templates/js/translated/report.js:225 -msgid "Select Parts" -msgstr "Parçaları Seçin" - -#: 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 "Seçili parçalar için rapor şablonu bulunamadı" - -#: 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 "Seçili emirler için rapor şablonu bulunamadı" - -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "Ek Düzenle" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "Eki Sil" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +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:1328 +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:1557 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:1611 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:1604 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:1333 templates/js/translated/label.js:134 +#: templates/js/translated/report.js:225 +msgid "Select Parts" +msgstr "Parçaları Seçin" + +#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "Etiket yazdırılmadan önce stok kalemleri seçilmeli" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" +msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "Silme İşlemini Onayla" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "Seri numaralarını tahsis et" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: templates/js/translated/report.js:75 +msgid "Select Report Template" +msgstr "Rapor Şablonu Seç" + +#: templates/js/translated/report.js:90 +msgid "Select Test Report Template" +msgstr "Test Raporu Şablonu Seç" + +#: 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 "Seçili stok kalemleri için rapor şablonu bulunamadı" + +#: 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 "Seçili yapım işleri için rapor şablonu bulunamadı" + +#: 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 "Seçili parçalar için rapor şablonu bulunamadı" + +#: 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 "Seçili emirler için rapor şablonu bulunamadı" + +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "Stok konumu ayarlanmadı" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "konumlar" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "Tanımsız konum" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "Konum artık yok" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "Seri No" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..ac32301153 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:51\n" "Last-Translator: \n" "Language-Team: Vietnamese\n" "Language: vi_VN\n" @@ -33,260 +33,290 @@ 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:595 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 "" +msgstr "Xác nhận mật khẩu" -#: InvenTree/forms.py:173 +#: InvenTree/forms.py:177 msgid "Confirm new password" -msgstr "" +msgstr "Xác nhận mật khẩu mới" -#: InvenTree/forms.py:205 +#: InvenTree/forms.py:209 msgid "Select Category" -msgstr "" - -#: InvenTree/forms.py:226 -msgid "E-mail (again)" -msgstr "" +msgstr "Chọn danh mục" #: 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:114 +msgid "Missing file" +msgstr "" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 -msgid "Comment" +#: InvenTree/models.py:133 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 "" -#: InvenTree/models.py:69 +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 +msgid "Comment" +msgstr "Bình luận" + +#: InvenTree/models.py:137 msgid "File comment" msgstr "" -#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055 -#: common/models.py:1056 part/models.py:2055 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" -msgstr "" +msgstr "Người dùng" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" -msgstr "" +msgstr "Ngày tải lên" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" -msgstr "" +msgstr "Tên tập tin không được để trống" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" -msgstr "" +msgstr "Mô tả" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" -msgstr "" +msgstr "Mô tả (tùy chọn)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" -msgstr "" +msgstr "Tên tập tin" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "" @@ -302,198 +332,198 @@ 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:538 msgid "Delete Item" msgstr "" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" -msgstr "" +msgstr "Thông tin hệ thống" #: barcodes/api.py:53 barcodes/api.py:150 msgid "Must provide barcode_data parameter" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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 "" +msgstr "Tạo đơn hàng" -#: 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 "Tạo đơn hàng" -#: 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 msgid "Part" -msgstr "" +msgstr "Nguyên liệu" -#: 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:1104 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 -msgid "Completion Date" +#: build/models.py:297 +msgid "Target date for build completion. Build will be overdue after this date." msgstr "" -#: build/models.py:288 +#: build/models.py:300 order/models.py:291 +#: templates/js/translated/build.js:1697 +msgid "Completion Date" +msgstr "Ngày hoàn thành" + +#: 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +msgid "Status" +msgstr "Trạng thái" + #: 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:233 +#: 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:1109 +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 "Đã hoàn thành" + +#: 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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 "Hiển thị nguyên liệu mới nhất" + +#: common/models.py:1014 +msgid "Show latest parts on the homepage" +msgstr "Hiển thị nguyên liệu mới nhất trên trang chủ" + +#: common/models.py: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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "" @@ -2336,19 +2248,11 @@ msgstr "" 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 -#: 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 -msgid "Link" -msgstr "" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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 "Nhà sản xuất" -#: 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:874 +#: 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 +2335,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 "" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "" @@ -2451,8 +2354,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 +2370,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 "Nhà cung cấp" -#: 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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 templates/navbar.html:26 +msgid "Stock" +msgstr "Kiện hàng" + +#: 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:1901 +#: 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,24 +2857,24 @@ msgstr "" msgid "New Company" msgstr "" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "" @@ -2994,7 +2886,7 @@ msgstr "" msgid "Label description" msgstr "" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 msgid "Purchase Order" -msgstr "" +msgstr "Đơn hàng" -#: 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:954 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:1354 msgid "Purchase Price" -msgstr "" +msgstr "Giá mua" -#: 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "" @@ -3475,19 +3362,23 @@ msgstr "" msgid "Select Supplier Part" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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 "Nguyên liệu" + +#: 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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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 "Số seri mới nhất" + +#: 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,15 +4933,15 @@ 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 "" +msgstr "Hàng còn ít" #: part/templates/part/variant_part.html:9 msgid "Create new part variant" @@ -5041,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 -msgid "Test Results" +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" msgstr "" #: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +msgid "Test Results" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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 "" +msgstr "Kho hàng" -#: 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 "" +msgstr "Nguyên liệu mới nhất" -#: 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 +6090,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,150 +6114,131 @@ 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 "" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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 "Cài đặt" + +#: templates/InvenTree/settings/settings.html:65 +msgid "Edit Global Setting" +msgstr "Chỉnh sửa cài đặt toàn cục" + +#: templates/InvenTree/settings/settings.html:65 +msgid "Edit User Setting" +msgstr "Chỉnh sửa cài đặt người dùng" + +#: 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 "Cài đặt người dùng" + +#: templates/InvenTree/settings/sidebar.html:8 +#: templates/InvenTree/settings/user.html:12 +msgid "Account Settings" +msgstr "Cài đặt tài khoản" + +#: templates/InvenTree/settings/sidebar.html:10 +#: templates/InvenTree/settings/user_display.html:9 +msgid "Display Settings" +msgstr "Thiết đặt hiển thị" + +#: 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 "Cài đặt tìm kiếm" + +#: 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 "Cài đặt toàn cục" + +#: 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,276 +6247,343 @@ msgstr "" msgid "Stock Settings" msgstr "" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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 -msgid "Username" +#: templates/InvenTree/settings/user.html:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" msgstr "" #: templates/InvenTree/settings/user.html:32 -msgid "First Name" +msgid "Username" msgstr "" #: templates/InvenTree/settings/user.html:36 +msgid "First Name" +msgstr "" + +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 -msgid "Theme Settings" +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" msgstr "" -#: templates/InvenTree/settings/user.html:174 -msgid "Set Theme" +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" msgstr "" -#: templates/InvenTree/settings/user.html:181 -msgid "Language Settings" +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" msgstr "" #: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +msgid "Do you really want to remove the selected email address?" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:25 +msgid "Theme Settings" +msgstr "Thiết lập giao diện" + +#: 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_display.html:54 +msgid "Language Settings" +msgstr "Thiết lập ngôn ngữ" + +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" -msgstr "" +msgstr "Thiết lập trang chủ" #: templates/InvenTree/settings/user_labels.html:9 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 "" +msgstr "Đăng xuất" #: templates/account/logout.html:10 msgid "Are you sure you want to sign out?" -msgstr "" +msgstr "Bạn có chắc bạn muốn đăng xuất không?" + +#: templates/account/logout.html:19 +msgid "Back to Site" +msgstr "Quay lại website" #: templates/account/password_reset.html:5 #: templates/account/password_reset.html:12 @@ -6636,7 +6591,7 @@ 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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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/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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" +msgstr "Số seri mới nhất" + +#: templates/js/translated/stock.js:104 msgid "Parent stock location" msgstr "" -#: templates/js/translated/stock.js:93 +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 msgid "Export Stock" msgstr "" -#: templates/js/translated/stock.js:104 +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,252 +8219,262 @@ 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 "" +msgstr "Mua" -#: templates/navbar.html:51 +#: templates/navbar.html:52 msgid "Sell" -msgstr "" +msgstr "Bán" -#: templates/navbar.html:83 users/models.py:39 +#: templates/navbar.html:86 users/models.py:39 msgid "Admin" -msgstr "" +msgstr "Quản trị" -#: templates/navbar.html:85 +#: templates/navbar.html:88 msgid "Logout" +msgstr "Đăng xuất" + +#: templates/navbar.html:90 +msgid "Login" msgstr "" -#: templates/navbar.html:106 +#: templates/navbar.html:111 msgid "About InvenTree" +msgstr "Giới thiệu" + +#: templates/navbar_demo.html:5 +msgid "InvenTree demo mode" msgstr "" #: templates/qr_code.html:11 @@ -8283,6 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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..88f3d3ad18 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-30 21:49+0000\n" +"PO-Revision-Date: 2021-11-30 21:52\n" "Last-Translator: \n" "Language-Team: Chinese Simplified\n" "Language: zh_CN\n" @@ -33,260 +33,290 @@ 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:595 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 "Email 地址确认" + +#: InvenTree/forms.py:254 msgid "You must type the same email each time." -msgstr "" +msgstr "您必须输入相同的 Email 。" -#: 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:114 +msgid "Missing file" +msgstr "缺少文件" + +#: InvenTree/models.py:115 +msgid "Missing external link" +msgstr "" + +#: InvenTree/models.py:126 stock/models.py:1874 +#: templates/js/translated/attachment.js:117 msgid "Attachment" msgstr "附件" -#: InvenTree/models.py:67 +#: InvenTree/models.py:127 msgid "Select file to attach" msgstr "选择附件" -#: InvenTree/models.py:69 templates/js/translated/attachment.js:87 +#: InvenTree/models.py:133 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 "链接" + +#: InvenTree/models.py:134 build/models.py:330 part/models.py:798 +#: stock/models.py:540 +msgid "Link to external URL" +msgstr "链接到外部 URL" + +#: InvenTree/models.py:137 templates/js/translated/attachment.js:161 msgid "Comment" msgstr "注释" -#: InvenTree/models.py:69 +#: InvenTree/models.py:137 msgid "File comment" msgstr "文件注释" -#: InvenTree/models.py:75 InvenTree/models.py:76 common/models.py:1055 -#: common/models.py:1056 part/models.py:2055 -#: report/templates/report/inventree_test_report_base.html:91 -#: templates/js/translated/stock.js:1669 +#: InvenTree/models.py:143 InvenTree/models.py:144 common/models.py:1185 +#: common/models.py:1186 part/models.py:2205 part/models.py:2225 +#: report/templates/report/inventree_test_report_base.html:96 +#: templates/js/translated/stock.js:2084 msgid "User" msgstr "用户" -#: InvenTree/models.py:79 +#: InvenTree/models.py:147 msgid "upload date" msgstr "上传日期" -#: InvenTree/models.py:99 +#: InvenTree/models.py:170 msgid "Filename must not be empty" msgstr "文件名不能为空!" -#: InvenTree/models.py:122 +#: InvenTree/models.py:193 msgid "Invalid attachment directory" msgstr "非法的附件目录" -#: InvenTree/models.py:132 +#: InvenTree/models.py:203 #, python-brace-format msgid "Filename contains illegal character '{c}'" msgstr "文件名包含非法字符 '{c}'" -#: InvenTree/models.py:135 +#: InvenTree/models.py:206 msgid "Filename missing extension" msgstr "缺少文件名扩展" -#: InvenTree/models.py:142 +#: InvenTree/models.py:213 msgid "Attachment with this filename already exists" msgstr "使用此文件名的附件已存在" -#: InvenTree/models.py:149 +#: InvenTree/models.py:220 msgid "Error renaming file" msgstr "重命名文件出错" -#: InvenTree/models.py:184 +#: InvenTree/models.py:255 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:271 InvenTree/models.py:272 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:1877 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:278 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/models.py:553 report/models.py:592 #: 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:855 templates/js/translated/order.js:1091 +#: 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:1151 templates/js/translated/stock.js:1889 +#: templates/js/translated/stock.js:1934 msgid "Description" msgstr "描述信息" -#: InvenTree/models.py:208 +#: InvenTree/models.py:279 msgid "Description (optional)" msgstr "描述 (可选)" -#: InvenTree/models.py:216 +#: InvenTree/models.py:287 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:285 msgid "Filename" msgstr "文件名" -#: InvenTree/settings.py:529 +#: InvenTree/settings.py:670 msgid "German" msgstr "德语" -#: InvenTree/settings.py:530 +#: InvenTree/settings.py:671 msgid "Greek" msgstr "希腊语" -#: InvenTree/settings.py:531 +#: InvenTree/settings.py:672 msgid "English" msgstr "英语" -#: InvenTree/settings.py:532 +#: InvenTree/settings.py:673 msgid "Spanish" msgstr "西班牙语" -#: InvenTree/settings.py:533 +#: InvenTree/settings.py:674 +msgid "Spanish (Mexican)" +msgstr "" + +#: InvenTree/settings.py:675 msgid "French" msgstr "法语" -#: InvenTree/settings.py:534 +#: InvenTree/settings.py:676 msgid "Hebrew" msgstr "希伯来语" -#: InvenTree/settings.py:535 +#: InvenTree/settings.py:677 msgid "Italian" msgstr "意大利语" -#: InvenTree/settings.py:536 +#: InvenTree/settings.py:678 msgid "Japanese" msgstr "日语" -#: InvenTree/settings.py:537 +#: InvenTree/settings.py:679 msgid "Korean" msgstr "韩语" -#: InvenTree/settings.py:538 +#: InvenTree/settings.py:680 msgid "Dutch" msgstr "荷兰语" -#: InvenTree/settings.py:539 +#: InvenTree/settings.py:681 msgid "Norwegian" msgstr "挪威语" -#: InvenTree/settings.py:540 +#: InvenTree/settings.py:682 msgid "Polish" msgstr "波兰语" -#: InvenTree/settings.py:541 +#: InvenTree/settings.py:683 +msgid "Portugese" +msgstr "" + +#: InvenTree/settings.py:684 msgid "Russian" msgstr "俄语" -#: InvenTree/settings.py:542 +#: InvenTree/settings.py:685 msgid "Swedish" msgstr "瑞典语" -#: InvenTree/settings.py:543 +#: InvenTree/settings.py:686 msgid "Thai" msgstr "泰语" -#: InvenTree/settings.py:544 +#: InvenTree/settings.py:687 msgid "Turkish" msgstr "土耳其语" -#: InvenTree/settings.py:545 +#: InvenTree/settings.py:688 msgid "Vietnamese" msgstr "越南语" -#: InvenTree/settings.py:546 +#: InvenTree/settings.py:689 msgid "Chinese" msgstr "中文(简体)" @@ -302,196 +332,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:538 msgid "Delete Item" msgstr "删除项" -#: InvenTree/views.py:665 +#: InvenTree/views.py:587 msgid "Check box to confirm item deletion" msgstr "选中方框以确认项目删除" -#: InvenTree/views.py:680 templates/InvenTree/settings/user.html:18 +#: InvenTree/views.py:602 templates/InvenTree/settings/user.html:21 msgid "Edit User Information" msgstr "编辑用户信息" -#: InvenTree/views.py:691 templates/InvenTree/settings/user.html:22 +#: InvenTree/views.py:613 templates/InvenTree/settings/user.html:19 msgid "Set Password" msgstr "设置密码" -#: InvenTree/views.py:710 +#: InvenTree/views.py:632 msgid "Password fields must match" msgstr "密码字段必须相匹配。" -#: InvenTree/views.py:954 templates/navbar.html:97 +#: InvenTree/views.py:883 templates/navbar.html:101 msgid "System Information" msgstr "系统信息" @@ -535,599 +565,569 @@ 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:1076 part/templates/part/detail.html:1162 #: 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 +#: 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: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:892 templates/js/translated/order.js:1205 +#: templates/js/translated/order.js:1283 templates/js/translated/order.js:1290 +#: templates/js/translated/order.js:1379 templates/js/translated/order.js:1479 +#: templates/js/translated/part.js:1615 templates/js/translated/part.js:1738 +#: templates/js/translated/part.js:1816 templates/js/translated/stock.js:377 +#: templates/js/translated/stock.js:2069 templates/js/translated/stock.js:2171 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:224 +#: templates/js/translated/stock.js:378 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:886 templates/js/translated/order.js:1473 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:840 templates/js/translated/order.js:1457 +#: templates/js/translated/part.js:737 templates/js/translated/part.js:818 +#: templates/js/translated/part.js:985 templates/js/translated/stock.js:508 +#: templates/js/translated/stock.js:1108 templates/js/translated/stock.js:2159 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:1104 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 templates/js/translated/order.js:700 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 -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 -#: 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 +#: 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_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:583 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:985 +#: templates/js/translated/order.js:1583 templates/js/translated/stock.js:891 +#: templates/js/translated/stock.js:1370 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:1178 templates/js/translated/order.js:1183 +#: templates/js/translated/stock.js:2020 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:219 order/serializers.py:287 +#: stock/forms.py:236 stock/serializers.py:318 stock/serializers.py:685 +#: 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:1190 templates/js/translated/order.js:1298 +#: templates/js/translated/order.js:1304 templates/js/translated/part.js:181 +#: templates/js/translated/stock.js:510 templates/js/translated/stock.js:1251 +#: templates/js/translated/stock.js:1961 +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:240 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:1096 templates/js/translated/stock.js:1226 +#: templates/js/translated/stock.js:2038 templates/js/translated/stock.js:2187 +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:233 +#: 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:1109 +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:1051 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 +1175,168 @@ 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:974 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:1240 templates/js/translated/stock.js:2194 +#: 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_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:453 +#: 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 -#: 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 -msgid "Add Attachment" -msgstr "添加附件" - -#: build/templates/build/detail.html:392 -#: 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 -msgid "Edit Attachment" -msgstr "编辑附件" - -#: build/templates/build/detail.html:399 -#: 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 -msgid "Confirm Delete Operation" -msgstr "确认删除操作" - -#: build/templates/build/detail.html:400 -#: 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 -msgid "Delete Attachment" -msgstr "删除附件" - -#: build/templates/build/detail.html:443 +#: build/templates/build/detail.html:477 msgid "Allocation Complete" msgstr "" -#: build/templates/build/detail.html:444 +#: build/templates/build/detail.html:478 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 +1344,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 +1380,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 +1392,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 +1404,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 +1412,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 "删除生产订单" @@ -1537,7 +1448,7 @@ msgstr "" msgid "Error reading file (data could be corrupted)" msgstr "" -#: common/forms.py:34 templates/js/translated/attachment.js:54 +#: common/forms.py:34 msgid "File" msgstr "" @@ -1554,728 +1465,728 @@ 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 -#: 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 +#: common/views.py:93 order/templates/order/order_wizard/po_upload.html:49 +#: 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:47 part/views.py:212 +#: part/views.py:858 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:859 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 +#: order/templates/order/order_wizard/po_upload.html:47 #: 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 +#: part/templates/part/import_wizard/part_upload.html:45 msgid "Previous Step" msgstr "" @@ -2296,7 +2207,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 +2232,7 @@ msgid "Contact phone number" msgstr "联系电话" #: company/models.py:125 company/templates/company/company_base.html:102 +#: templates/InvenTree/settings/user.html:47 msgid "Email" msgstr "电子邮件" @@ -2336,19 +2248,11 @@ msgstr "联系人" 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 -#: 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 -msgid "Link" -msgstr "链接" - #: company/models.py:131 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 +2280,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 +2289,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 +2299,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:874 +#: 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 +2335,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 "制造商商品" @@ -2440,10 +2344,9 @@ msgid "Parameter name" 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 +#: report/templates/report/inventree_test_report_base.html:95 +#: stock/models.py:1867 templates/js/translated/company.js:644 +#: templates/js/translated/part.js:645 templates/js/translated/stock.js:878 msgid "Value" msgstr "数值" @@ -2451,8 +2354,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 +2370,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:861 +#: 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 +2406,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:1366 msgid "Packaging" msgstr "打包" @@ -2525,7 +2430,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 +2438,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 +2484,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:1073 +#: templates/js/translated/stock.js:2002 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 +2625,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:976 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:1323 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:354 +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:1717 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:1779 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:1765 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:509 +#: templates/js/translated/stock.js:1162 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:1901 +#: 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,24 +2857,24 @@ msgstr "公司" msgid "New Company" msgstr "新建公司信息" -#: company/views.py:129 part/views.py:608 +#: company/views.py:129 part/views.py:584 msgid "Download Image" msgstr "下载图片" -#: company/views.py:158 part/views.py:640 +#: company/views.py:158 part/views.py:616 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:623 #, python-brace-format msgid "Invalid response: {code}" msgstr "无效响应: {code}" -#: company/views.py:174 part/views.py:656 +#: company/views.py:174 part/views.py:632 msgid "Supplied URL is not a valid image file" msgstr "提供的 URL 不是一个有效的图片文件" -#: label/api.py:57 report/api.py:201 +#: label/api.py:57 report/api.py:203 msgid "No valid objects provided to template" msgstr "没有为模板提供有效对象" @@ -2994,7 +2886,7 @@ msgstr "标签名称" msgid "Label description" msgstr "标签说明" -#: label/models.py:127 stock/forms.py:167 +#: label/models.py:127 msgid "Label" msgstr "标签" @@ -3039,7 +2931,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:457 report/models.py:495 +#: report/models.py:322 report/models.py:459 report/models.py:497 msgid "Filters" msgstr "筛选器" @@ -3051,280 +2943,276 @@ 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:1114 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:1166 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:1300 +#: templates/js/translated/stock.js:1983 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:954 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:1354 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 "" -#: order/serializers.py:167 +#: order/serializers.py:169 msgid "Purchase price currency" msgstr "" -#: order/serializers.py:202 +#: order/serializers.py:204 msgid "Line Item" msgstr "" -#: order/serializers.py:208 +#: order/serializers.py:210 msgid "Line item does not match purchase order" msgstr "" -#: order/serializers.py:218 order/serializers.py:285 +#: order/serializers.py:220 order/serializers.py:288 msgid "Select destination location for received items" msgstr "" -#: order/serializers.py:242 +#: order/serializers.py:244 msgid "Barcode Hash" msgstr "" -#: order/serializers.py:243 +#: order/serializers.py:245 msgid "Unique identifier field" msgstr "" -#: order/serializers.py:259 +#: order/serializers.py:262 msgid "Barcode is already in use" msgstr "" -#: order/serializers.py:297 +#: order/serializers.py:300 msgid "Line items must be provided" msgstr "" -#: order/serializers.py:314 +#: order/serializers.py:317 msgid "Destination location must be specified" msgstr "" -#: order/serializers.py:325 +#: order/serializers.py:328 msgid "Supplied barcode values must be unique" msgstr "" @@ -3334,50 +3222,48 @@ 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 +3339,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 "移除行" @@ -3475,19 +3362,23 @@ msgstr "行" msgid "Select Supplier Part" msgstr "选择供应商商品" -#: order/templates/order/order_wizard/po_upload.html:11 +#: order/templates/order/order_wizard/po_upload.html:8 +msgid "Return to Orders" +msgstr "" + +#: order/templates/order/order_wizard/po_upload.html:17 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 +#: order/templates/order/order_wizard/po_upload.html:25 +#: 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 +#: part/templates/part/import_wizard/part_upload.html:23 #, python-format msgid "Step %(step)s of %(count)s" msgstr "步骤 %(step)s / %(count)s" -#: order/templates/order/order_wizard/po_upload.html:48 +#: order/templates/order/order_wizard/po_upload.html:55 msgid "Order is already processed. Files cannot be uploaded." msgstr "" @@ -3530,7 +3421,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:1119 msgid "Items" msgstr "" @@ -3548,30 +3439,25 @@ msgstr "" msgid "Select a purchase order for %(name)s" 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" +#: 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_navbar.html:26 -msgid "Received Stock Items" +#: order/templates/order/po_sidebar.html:7 +msgid "Received Stock" msgstr "" -#: order/templates/order/po_navbar.html:29 -#: order/templates/order/po_received_items.html:12 -#: order/templates/order/purchase_order_detail.html:47 -msgid "Received Items" -msgstr "" - -#: order/templates/order/purchase_order_detail.html:17 +#: 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:181 #: order/templates/order/sales_order_detail.html:23 -#: order/templates/order/sales_order_detail.html:177 +#: order/templates/order/sales_order_detail.html:157 msgid "Add Line Item" msgstr "" @@ -3583,34 +3469,43 @@ 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:50 +msgid "Received 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/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:1086 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 +3520,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 +3548,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 +3588,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 +3655,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:758 msgid "Must be greater than zero" msgstr "必须大于0" -#: part/api.py:704 +#: part/api.py:762 msgid "Must be a valid quantity" msgstr "必须是有效的数量" -#: part/api.py:719 +#: part/api.py:777 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:808 part/api.py:812 part/api.py:827 part/api.py:831 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 +3736,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 +3760,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:1134 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:858 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 +4229,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 +4262,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 +4398,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,311 +4427,327 @@ 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:755 +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:772 +msgid "Add Related Part" +msgstr "" + +#: part/templates/part/detail.html:869 msgid "Add Test Result Template" msgstr "" -#: part/templates/part/detail.html:755 +#: part/templates/part/detail.html:926 msgid "Edit Part Notes" msgstr "编辑商品注释" -#: part/templates/part/detail.html:907 +#: part/templates/part/detail.html:1039 #, python-format msgid "Purchase Unit Price - %(currency)s" msgstr "" -#: part/templates/part/detail.html:919 +#: part/templates/part/detail.html:1051 #, python-format msgid "Unit Price-Cost Difference - %(currency)s" msgstr "" -#: part/templates/part/detail.html:931 +#: part/templates/part/detail.html:1063 #, python-format msgid "Supplier Unit Cost - %(currency)s" msgstr "" -#: part/templates/part/detail.html:1020 +#: part/templates/part/detail.html:1152 #, 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 +#: part/templates/part/import_wizard/part_upload.html:53 msgid "Unsuffitient privileges." msgstr "" -#: part/templates/part/import_wizard/part_upload.html:14 +#: part/templates/part/import_wizard/part_upload.html:8 +msgid "Return to Parts" +msgstr "" + +#: part/templates/part/import_wizard/part_upload.html:16 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:1546 +#: 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 +4771,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 +4805,24 @@ msgstr "" msgid "No pricing information is available for this part." msgstr "此商品无价格信息可用。" -#: part/templates/part/part_thumb.html:20 +#: part/templates/part/part_sidebar.html:8 +#: templates/js/translated/stock.js:1949 +msgid "Details" +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 "" @@ -4980,7 +4891,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 +4913,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:1788 msgid "Add Internal Price Break" msgstr "" @@ -5022,13 +4933,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,135 +4952,132 @@ 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:502 msgid "None" msgstr "" -#: part/views.py:585 +#: part/views.py:561 msgid "Part QR Code" msgstr "商品二维码" -#: part/views.py:687 +#: part/views.py:663 msgid "Select Part Image" msgstr "选择商品图像" -#: part/views.py:713 +#: part/views.py:689 msgid "Updated part image" msgstr "更新商品图像" -#: part/views.py:716 +#: part/views.py:692 msgid "Part image not found" msgstr "未找到商品图像" -#: part/views.py:728 +#: part/views.py:704 msgid "Duplicate BOM" msgstr "" -#: part/views.py:758 +#: part/views.py:734 msgid "Confirm duplication of BOM from parent" msgstr "" -#: part/views.py:779 -msgid "Validate BOM" -msgstr "" - -#: part/views.py:800 +#: part/views.py:776 msgid "Confirm that the BOM is valid" msgstr "" -#: part/views.py:811 +#: part/views.py:787 msgid "Validated Bill of Materials" msgstr "" -#: part/views.py:884 +#: part/views.py:860 msgid "Match Parts" msgstr "匹配商品" -#: part/views.py:1272 +#: part/views.py:1196 +msgid "Export Bill of Materials" +msgstr "" + +#: part/views.py:1248 msgid "Confirm Part Deletion" msgstr "确认删除商品" -#: part/views.py:1279 +#: part/views.py:1255 msgid "Part was deleted" msgstr "商品已删除" -#: part/views.py:1288 +#: part/views.py:1264 msgid "Part Pricing" msgstr "商品价格" -#: part/views.py:1437 +#: part/views.py:1413 msgid "Create Part Parameter Template" msgstr "" -#: part/views.py:1447 +#: part/views.py:1423 msgid "Edit Part Parameter Template" msgstr "" -#: part/views.py:1454 +#: part/views.py:1430 msgid "Delete Part Parameter Template" msgstr "" -#: part/views.py:1502 templates/js/translated/part.js:308 +#: part/views.py:1489 templates/js/translated/part.js:310 msgid "Edit Part Category" msgstr "编辑商品类别" -#: part/views.py:1540 +#: part/views.py:1527 msgid "Delete Part Category" msgstr "删除商品类别" -#: part/views.py:1546 +#: part/views.py:1533 msgid "Part category was deleted" msgstr "商品类别已删除" -#: part/views.py:1555 +#: part/views.py:1542 msgid "Create Category Parameter Template" msgstr "创建类别参数模板" -#: part/views.py:1656 +#: part/views.py:1643 msgid "Edit Category Parameter Template" msgstr "编辑类别参数模板" -#: part/views.py:1712 +#: part/views.py:1699 msgid "Delete Category Parameter Template" msgstr "删除类别参数模板" -#: part/views.py:1734 +#: part/views.py:1721 msgid "Added new price break" msgstr "" -#: part/views.py:1810 +#: part/views.py:1797 msgid "Edit Internal Price Break" msgstr "" -#: part/views.py:1818 +#: part/views.py:1805 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 "" @@ -5206,51 +5114,51 @@ msgstr "" msgid "Include test results for stock items installed inside assembled item" msgstr "" -#: report/models.py:380 +#: report/models.py:382 msgid "Build Filters" msgstr "" -#: report/models.py:381 +#: report/models.py:383 msgid "Build query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:423 +#: report/models.py:425 msgid "Part Filters" msgstr "商品过滤器" -#: report/models.py:424 +#: report/models.py:426 msgid "Part query filters (comma-separated list of key=value pairs" msgstr "" -#: report/models.py:458 +#: report/models.py:460 msgid "Purchase order query filters" msgstr "" -#: report/models.py:496 +#: report/models.py:498 msgid "Sales order query filters" msgstr "" -#: report/models.py:546 +#: report/models.py:548 msgid "Snippet" msgstr "" -#: report/models.py:547 +#: report/models.py:549 msgid "Report snippet file" msgstr "" -#: report/models.py:551 +#: report/models.py:553 msgid "Snippet file description" msgstr "" -#: report/models.py:586 +#: report/models.py:588 msgid "Asset" msgstr "" -#: report/models.py:587 +#: report/models.py:589 msgid "Report asset file" msgstr "" -#: report/models.py:590 +#: report/models.py:592 msgid "Asset file description" msgstr "" @@ -5258,552 +5166,588 @@ 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:83 +#: report/templates/report/inventree_test_report_base.html:79 +#: 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:1288 templates/js/translated/order.js:1377 +msgid "Serial Number" +msgstr "序列号" + +#: report/templates/report/inventree_test_report_base.html:88 msgid "Test Results" msgstr "" -#: report/templates/report/inventree_test_report_base.html:88 -#: stock/models.py:1804 +#: report/templates/report/inventree_test_report_base.html:93 +#: stock/models.py:1855 msgid "Test" msgstr "" -#: report/templates/report/inventree_test_report_base.html:89 -#: stock/models.py:1810 +#: report/templates/report/inventree_test_report_base.html:94 +#: 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 +#: report/templates/report/inventree_test_report_base.html:97 +#: templates/js/translated/order.js:685 templates/js/translated/stock.js:1917 msgid "Date" msgstr "" -#: report/templates/report/inventree_test_report_base.html:103 +#: report/templates/report/inventree_test_report_base.html:108 msgid "Pass" msgstr "" -#: report/templates/report/inventree_test_report_base.html:105 +#: report/templates/report/inventree_test_report_base.html:110 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 +#: report/templates/report/inventree_test_report_base.html:123 +#: stock/templates/stock/stock_sidebar.html:12 +msgid "Installed Items" +msgstr "" + +#: report/templates/report/inventree_test_report_base.html:137 +#: templates/js/translated/stock.js:2177 +msgid "Serial" +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:1276 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:686 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:556 +msgid "StockItem primary key value" +msgstr "" + +#: stock/serializers.py:584 +msgid "Stock transaction notes" +msgstr "" + +#: stock/serializers.py:594 +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:279 stock/templates/stock/item.html:304 msgid "Add Test Result" msgstr "" -#: stock/templates/stock/item.html:346 +#: stock/templates/stock/item.html:324 msgid "Edit Test Result" msgstr "" -#: stock/templates/stock/item.html:360 +#: stock/templates/stock/item.html:338 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:1289 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:505 msgid "Edit Stock Status" msgstr "" @@ -5857,115 +5801,78 @@ 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" -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: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 +5893,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:648 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:318 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:298 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 +6010,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 +6090,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,150 +6114,131 @@ 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 "商品参数模板" -#: templates/InvenTree/settings/po.html:9 +#: templates/InvenTree/settings/po.html:7 msgid "Purchase Order Settings" msgstr "采购订单设置" -#: templates/InvenTree/settings/report.html:10 +#: templates/InvenTree/settings/report.html:8 #: templates/InvenTree/settings/user_reports.html:9 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:12 +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 +6247,198 @@ msgstr "销售订单设置" msgid "Stock Settings" msgstr "库存设置" -#: templates/InvenTree/settings/user.html:11 -msgid "Account Settings" -msgstr "帐户设置" - -#: templates/InvenTree/settings/user.html:19 -#: templates/js/translated/helpers.js:26 -msgid "Edit" -msgstr "编辑" - -#: templates/InvenTree/settings/user.html:21 +#: templates/InvenTree/settings/user.html:18 #: 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:22 +#: templates/js/translated/helpers.js:26 +msgid "Edit" +msgstr "编辑" + +#: templates/InvenTree/settings/user.html:32 msgid "Username" msgstr "用户名" -#: templates/InvenTree/settings/user.html:32 +#: templates/InvenTree/settings/user.html:36 msgid "First Name" msgstr "名字" -#: templates/InvenTree/settings/user.html:36 +#: templates/InvenTree/settings/user.html:40 msgid "Last Name" msgstr "姓氏" -#: templates/InvenTree/settings/user.html:42 -msgid "E-Mail" +#: templates/InvenTree/settings/user.html:55 +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:75 msgid "Verified" msgstr "" -#: templates/InvenTree/settings/user.html:63 +#: templates/InvenTree/settings/user.html:77 msgid "Unverified" msgstr "" -#: templates/InvenTree/settings/user.html:65 +#: templates/InvenTree/settings/user.html:79 msgid "Primary" msgstr "" -#: templates/InvenTree/settings/user.html:71 +#: templates/InvenTree/settings/user.html:85 msgid "Make Primary" msgstr "" -#: templates/InvenTree/settings/user.html:72 +#: templates/InvenTree/settings/user.html:86 msgid "Re-send Verification" msgstr "" -#: templates/InvenTree/settings/user.html:73 -#: templates/InvenTree/settings/user.html:130 +#: templates/InvenTree/settings/user.html:87 +#: templates/InvenTree/settings/user.html:154 msgid "Remove" msgstr "" -#: templates/InvenTree/settings/user.html:80 +#: templates/InvenTree/settings/user.html:94 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:95 +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:102 +msgid "Add Email Address" msgstr "" -#: templates/InvenTree/settings/user.html:93 -msgid "Add E-mail" +#: templates/InvenTree/settings/user.html:112 +msgid "Enter e-mail address" msgstr "" -#: templates/InvenTree/settings/user.html:100 +#: templates/InvenTree/settings/user.html:114 +msgid "Add Email" +msgstr "" + +#: templates/InvenTree/settings/user.html:124 msgid "Social Accounts" msgstr "" -#: templates/InvenTree/settings/user.html:105 +#: templates/InvenTree/settings/user.html:129 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:163 +msgid "There are no social network accounts connected to your InvenTree account" msgstr "" -#: templates/InvenTree/settings/user.html:142 +#: templates/InvenTree/settings/user.html:168 msgid "Add a 3rd Party Account" msgstr "" -#: templates/InvenTree/settings/user.html:153 +#: templates/InvenTree/settings/user.html:179 +msgid "Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:185 +msgid "Log out active sessions (except this one)" +msgstr "" + +#: templates/InvenTree/settings/user.html:186 +msgid "Log Out Active Sessions" +msgstr "" + +#: templates/InvenTree/settings/user.html:195 +msgid "unknown on unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:196 +msgid "unknown" +msgstr "" + +#: templates/InvenTree/settings/user.html:200 +msgid "IP Address" +msgstr "" + +#: templates/InvenTree/settings/user.html:201 +msgid "Device" +msgstr "" + +#: templates/InvenTree/settings/user.html:202 +msgid "Last Activity" +msgstr "" + +#: templates/InvenTree/settings/user.html:211 +#, python-format +msgid "%(time)s ago (this session)" +msgstr "" + +#: templates/InvenTree/settings/user.html:213 +#, python-format +msgid "%(time)s ago" +msgstr "" + +#: templates/InvenTree/settings/user.html:224 +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.html:174 +#: 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.html:181 +#: templates/InvenTree/settings/user_display.html:54 msgid "Language Settings" msgstr "语言设置" -#: templates/InvenTree/settings/user.html:200 +#: templates/InvenTree/settings/user_display.html:63 +msgid "Select language" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:79 #, python-format msgid "%(lang_translated)s%% translated" msgstr "%(lang_translated)s%% 已翻译" -#: templates/InvenTree/settings/user.html:202 +#: templates/InvenTree/settings/user_display.html:81 msgid "No translations available" msgstr "无可用翻译" -#: templates/InvenTree/settings/user.html:209 +#: templates/InvenTree/settings/user_display.html:88 msgid "Set Language" msgstr "设置语言" -#: templates/InvenTree/settings/user.html:214 +#: templates/InvenTree/settings/user_display.html:91 +msgid "Some languages are not complete" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:93 +msgid "Show only sufficent" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "and hidden." +msgstr "" + +#: templates/InvenTree/settings/user_display.html:95 +msgid "Show them too" +msgstr "" + +#: templates/InvenTree/settings/user_display.html:101 msgid "Help the translation efforts!" msgstr "帮助翻译工作!" -#: templates/InvenTree/settings/user.html:215 +#: templates/InvenTree/settings/user_display.html:102 #, 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?" -msgstr "" - -#: templates/InvenTree/settings/user_forms.html:9 -msgid "Form Settings" -msgstr "" - #: templates/InvenTree/settings/user_homepage.html:9 msgid "Home Page Settings" msgstr "主页设置" @@ -6501,128 +6447,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 +6581,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 +6611,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 +6632,85 @@ msgstr "" msgid "Or use a SSO-provider for signup" msgstr "" +#: templates/admin_button.html:2 +msgid "View in administration panel" +msgstr "" + +#: templates/attachment_button.html:4 templates/js/translated/attachment.js:54 +msgid "Add Link" +msgstr "" + +#: templates/attachment_button.html:7 templates/js/translated/attachment.js:36 +msgid "Add Attachment" +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 "" @@ -6693,431 +6727,441 @@ 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:297 -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 "打印报表前必须选择Build(s)" - -#: 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:948 -#: 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:174 templates/js/translated/modals.js:1052 +#: templates/js/translated/api.js:185 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:186 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:192 msgid "Error 400: Bad request" msgstr "" -#: templates/js/translated/api.js:182 +#: templates/js/translated/api.js:193 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:197 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:198 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:202 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:203 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:207 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:208 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:212 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:213 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:216 msgid "Unhandled Error Code" msgstr "" -#: templates/js/translated/api.js:206 +#: templates/js/translated/api.js:217 msgid "Error code" msgstr "" -#: templates/js/translated/attachment.js:27 +#: templates/js/translated/attachment.js:76 msgid "No attachments found" msgstr "" -#: templates/js/translated/attachment.js:91 +#: templates/js/translated/attachment.js:98 +msgid "Edit Attachment" +msgstr "编辑附件" + +#: templates/js/translated/attachment.js:108 +msgid "Confirm Delete" +msgstr "" + +#: templates/js/translated/attachment.js:109 +msgid "Delete Attachment" +msgstr "删除附件" + +#: templates/js/translated/attachment.js:165 msgid "Upload Date" msgstr "" -#: templates/js/translated/attachment.js:104 +#: templates/js/translated/attachment.js:178 msgid "Edit attachment" msgstr "" -#: templates/js/translated/attachment.js:111 +#: templates/js/translated/attachment.js:185 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:600 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:1320 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:1194 +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:1327 +msgid "Edit stock allocation" +msgstr "" + +#: templates/js/translated/build.js:1054 templates/js/translated/build.js:1761 +#: templates/js/translated/order.js:1328 +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:1557 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:1611 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:1604 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: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 "" -#: 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:1094 +#: templates/js/translated/stock.js:1871 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:2090 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 +7169,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 +7181,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 +7279,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:350 templates/js/translated/forms.js:365 +#: templates/js/translated/forms.js:379 templates/js/translated/forms.js:393 msgid "Action Prohibited" msgstr "" -#: templates/js/translated/forms.js:324 +#: templates/js/translated/forms.js:352 msgid "Create operation not allowed" msgstr "" -#: templates/js/translated/forms.js:337 +#: templates/js/translated/forms.js:367 msgid "Update operation not allowed" msgstr "" -#: templates/js/translated/forms.js:349 +#: templates/js/translated/forms.js:381 msgid "Delete operation not allowed" msgstr "" -#: templates/js/translated/forms.js:361 +#: templates/js/translated/forms.js:395 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:680 +msgid "Enter a valid number" +msgstr "" + +#: templates/js/translated/forms.js:1072 templates/modals.html:19 +#: templates/modals.html:43 msgid "Form errors exist" msgstr "" -#: templates/js/translated/forms.js:1323 +#: templates/js/translated/forms.js:1463 msgid "No results found" msgstr "" -#: templates/js/translated/forms.js:1525 +#: templates/js/translated/forms.js:1667 msgid "Searching" msgstr "" -#: templates/js/translated/forms.js:1742 +#: templates/js/translated/forms.js:1884 msgid "Clear input" msgstr "" @@ -7297,6 +7345,11 @@ msgstr "" msgid "NO" msgstr "" +#: templates/js/translated/label.js:29 templates/js/translated/report.js:118 +#: templates/js/translated/stock.js:624 +msgid "Select Stock Items" +msgstr "选择库存项" + #: templates/js/translated/label.js:30 msgid "Stock item(s) must be selected before printing labels" msgstr "打印标签前必须选择库存项目" @@ -7342,62 +7395,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 +7458,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 +7498,708 @@ 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:423 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:424 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:1673 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:1063 msgid "Order is overdue" msgstr "" -#: templates/js/translated/order.js:749 templates/js/translated/order.js:1602 +#: templates/js/translated/order.js:772 templates/js/translated/order.js:1646 msgid "Edit Line Item" msgstr "" -#: templates/js/translated/order.js:761 templates/js/translated/order.js:1613 +#: templates/js/translated/order.js:784 templates/js/translated/order.js:1657 msgid "Delete Line Item" msgstr "" -#: templates/js/translated/order.js:800 +#: templates/js/translated/order.js:823 msgid "No line items found" msgstr "" -#: templates/js/translated/order.js:827 templates/js/translated/order.js:1432 +#: templates/js/translated/order.js:850 templates/js/translated/order.js:1467 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:904 templates/js/translated/order.js:1492 +#: 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:919 templates/js/translated/order.js:1508 +msgid "Total Price" msgstr "" -#: templates/js/translated/order.js:962 templates/js/translated/order.js:1573 +#: templates/js/translated/order.js:997 templates/js/translated/order.js:1617 msgid "Edit line item" msgstr "" -#: templates/js/translated/order.js:963 +#: templates/js/translated/order.js:998 msgid "Delete line item" msgstr "" -#: templates/js/translated/order.js:967 +#: templates/js/translated/order.js:1002 msgid "Receive line item" msgstr "" -#: templates/js/translated/order.js:1004 +#: templates/js/translated/order.js:1039 msgid "No sales orders found" msgstr "" -#: templates/js/translated/order.js:1042 +#: templates/js/translated/order.js:1077 msgid "Invalid Customer" msgstr "" -#: templates/js/translated/order.js:1120 +#: templates/js/translated/order.js:1155 msgid "No sales order allocations found" msgstr "" -#: templates/js/translated/order.js:1213 +#: templates/js/translated/order.js:1248 msgid "Edit Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1231 +#: templates/js/translated/order.js:1265 +msgid "Confirm Delete Operation" +msgstr "确认删除操作" + +#: templates/js/translated/order.js:1266 msgid "Delete Stock Allocation" msgstr "" -#: templates/js/translated/order.js:1273 +#: templates/js/translated/order.js:1308 msgid "Stock location not specified" msgstr "" -#: templates/js/translated/order.js:1514 +#: templates/js/translated/order.js:1557 msgid "Fulfilled" msgstr "" -#: templates/js/translated/order.js:1557 +#: templates/js/translated/order.js:1601 msgid "Allocate serial numbers" msgstr "" -#: templates/js/translated/order.js:1563 +#: templates/js/translated/order.js:1607 msgid "Purchase stock" msgstr "" -#: templates/js/translated/order.js:1570 templates/js/translated/order.js:1725 +#: templates/js/translated/order.js:1614 templates/js/translated/order.js:1793 msgid "Calculate price" msgstr "" -#: templates/js/translated/order.js:1574 +#: templates/js/translated/order.js:1618 msgid "Delete line item " msgstr "" -#: templates/js/translated/order.js:1673 +#: templates/js/translated/order.js:1741 msgid "Allocate Stock Item" msgstr "" -#: templates/js/translated/order.js:1733 +#: templates/js/translated/order.js:1801 msgid "Update Unit Price" msgstr "" -#: templates/js/translated/order.js:1747 +#: templates/js/translated/order.js:1815 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:1832 +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:1851 +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:1895 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:816 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:817 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 -msgid "Parent stock location" +#: templates/js/translated/report.js:67 +msgid "items selected" msgstr "" -#: templates/js/translated/stock.js:93 -msgid "Export Stock" +#: 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 "打印报表前必须选择Build(s)" + +#: 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 "" + +#: templates/js/translated/stock.js:88 templates/js/translated/stock.js:167 +msgid "Next available serial number" +msgstr "" + +#: templates/js/translated/stock.js:90 templates/js/translated/stock.js:169 +msgid "Latest serial number" msgstr "" #: templates/js/translated/stock.js:104 +msgid "Parent stock location" +msgstr "" + +#: templates/js/translated/stock.js:140 +msgid "New Stock Location" +msgstr "" + +#: templates/js/translated/stock.js:180 +msgid "This part cannot be serialized" +msgstr "" + +#: templates/js/translated/stock.js:219 +msgid "Enter initial quantity for this stock item" +msgstr "" + +#: templates/js/translated/stock.js:225 +msgid "Enter serial numbers for new stock (or leave blank)" +msgstr "" + +#: templates/js/translated/stock.js:368 +msgid "Created new stock item" +msgstr "" + +#: templates/js/translated/stock.js:381 +msgid "Created multiple stock items" +msgstr "" + +#: templates/js/translated/stock.js:420 +msgid "Export Stock" +msgstr "" + +#: templates/js/translated/stock.js:431 msgid "Include Sublocations" msgstr "" -#: templates/js/translated/stock.js:105 +#: templates/js/translated/stock.js:432 msgid "Include stock items in sublocations" msgstr "" -#: templates/js/translated/stock.js:147 +#: templates/js/translated/stock.js:474 msgid "Transfer Stock" msgstr "" -#: templates/js/translated/stock.js:148 +#: templates/js/translated/stock.js:475 msgid "Move" msgstr "" -#: templates/js/translated/stock.js:154 +#: templates/js/translated/stock.js:481 msgid "Count Stock" msgstr "" -#: templates/js/translated/stock.js:155 +#: templates/js/translated/stock.js:482 msgid "Count" msgstr "" -#: templates/js/translated/stock.js:159 +#: templates/js/translated/stock.js:486 msgid "Remove Stock" msgstr "" -#: templates/js/translated/stock.js:160 +#: templates/js/translated/stock.js:487 msgid "Take" msgstr "" -#: templates/js/translated/stock.js:164 +#: templates/js/translated/stock.js:491 msgid "Add Stock" msgstr "" -#: templates/js/translated/stock.js:165 users/models.py:195 +#: templates/js/translated/stock.js:492 users/models.py:200 msgid "Add" msgstr "添加" -#: templates/js/translated/stock.js:169 templates/stock_table.html:63 +#: templates/js/translated/stock.js:496 templates/stock_table.html:56 msgid "Delete Stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Quantity cannot be adjusted for serialized stock" msgstr "" -#: templates/js/translated/stock.js:258 +#: templates/js/translated/stock.js:585 msgid "Specify stock quantity" msgstr "" -#: templates/js/translated/stock.js:298 +#: templates/js/translated/stock.js:625 msgid "You must select at least one available stock item" msgstr "" -#: templates/js/translated/stock.js:456 +#: templates/js/translated/stock.js:783 msgid "PASS" msgstr "" -#: templates/js/translated/stock.js:458 +#: templates/js/translated/stock.js:785 msgid "FAIL" msgstr "" -#: templates/js/translated/stock.js:463 +#: templates/js/translated/stock.js:790 msgid "NO RESULT" msgstr "" -#: templates/js/translated/stock.js:489 +#: templates/js/translated/stock.js:812 msgid "Add test result" msgstr "" -#: templates/js/translated/stock.js:515 +#: templates/js/translated/stock.js:838 msgid "No test results found" msgstr "" -#: templates/js/translated/stock.js:563 +#: templates/js/translated/stock.js:895 msgid "Test Date" msgstr "" -#: templates/js/translated/stock.js:670 +#: templates/js/translated/stock.js:1002 msgid "In production" msgstr "正在生产" -#: templates/js/translated/stock.js:674 +#: templates/js/translated/stock.js:1006 msgid "Installed in Stock Item" msgstr "" -#: templates/js/translated/stock.js:678 +#: templates/js/translated/stock.js:1010 msgid "Shipped to customer" msgstr "" -#: templates/js/translated/stock.js:682 +#: templates/js/translated/stock.js:1014 msgid "Assigned to Sales Order" msgstr "" -#: templates/js/translated/stock.js:688 +#: templates/js/translated/stock.js:1020 msgid "No stock location set" msgstr "未设置仓储地点" -#: templates/js/translated/stock.js:844 +#: templates/js/translated/stock.js:1178 msgid "Stock item is in production" msgstr "库存品正在生产" -#: templates/js/translated/stock.js:849 +#: templates/js/translated/stock.js:1183 msgid "Stock item assigned to sales order" msgstr "" -#: templates/js/translated/stock.js:852 +#: templates/js/translated/stock.js:1186 msgid "Stock item assigned to customer" msgstr "" -#: templates/js/translated/stock.js:856 +#: templates/js/translated/stock.js:1190 msgid "Stock item has expired" msgstr "" -#: templates/js/translated/stock.js:858 +#: templates/js/translated/stock.js:1192 msgid "Stock item will expire soon" msgstr "" -#: templates/js/translated/stock.js:862 +#: templates/js/translated/stock.js:1196 msgid "Stock item has been allocated" msgstr "" -#: templates/js/translated/stock.js:866 +#: templates/js/translated/stock.js:1200 msgid "Stock item has been installed in another item" msgstr "" -#: templates/js/translated/stock.js:873 +#: templates/js/translated/stock.js:1207 msgid "Stock item has been rejected" msgstr "" -#: templates/js/translated/stock.js:875 +#: templates/js/translated/stock.js:1209 msgid "Stock item is lost" msgstr "" -#: templates/js/translated/stock.js:877 +#: templates/js/translated/stock.js:1211 msgid "Stock item is destroyed" msgstr "" -#: templates/js/translated/stock.js:881 -#: templates/js/translated/table_filters.js:161 +#: templates/js/translated/stock.js:1215 +#: templates/js/translated/table_filters.js:183 msgid "Depleted" msgstr "" -#: templates/js/translated/stock.js:935 +#: templates/js/translated/stock.js:1265 msgid "Stocktake" msgstr "" -#: templates/js/translated/stock.js:1008 +#: templates/js/translated/stock.js:1338 msgid "Supplier part not specified" msgstr "" -#: templates/js/translated/stock.js:1046 +#: templates/js/translated/stock.js:1376 msgid "No stock items matching query" msgstr "" -#: templates/js/translated/stock.js:1067 templates/js/translated/stock.js:1115 +#: templates/js/translated/stock.js:1397 templates/js/translated/stock.js:1445 msgid "items" msgstr "" -#: templates/js/translated/stock.js:1155 +#: templates/js/translated/stock.js:1485 msgid "batches" msgstr "" -#: templates/js/translated/stock.js:1182 +#: templates/js/translated/stock.js:1512 msgid "locations" msgstr "" -#: templates/js/translated/stock.js:1184 +#: templates/js/translated/stock.js:1514 msgid "Undefined location" msgstr "" -#: templates/js/translated/stock.js:1358 +#: templates/js/translated/stock.js:1688 msgid "Set Stock Status" msgstr "" -#: templates/js/translated/stock.js:1372 +#: templates/js/translated/stock.js:1702 msgid "Select Status Code" msgstr "" -#: templates/js/translated/stock.js:1373 +#: templates/js/translated/stock.js:1703 msgid "Status code must be selected" msgstr "" -#: templates/js/translated/stock.js:1512 +#: templates/js/translated/stock.js:1927 msgid "Invalid date" msgstr "" -#: templates/js/translated/stock.js:1559 +#: templates/js/translated/stock.js:1974 msgid "Location no longer exists" msgstr "" -#: templates/js/translated/stock.js:1578 +#: templates/js/translated/stock.js:1993 msgid "Purchase order no longer exists" msgstr "" -#: templates/js/translated/stock.js:1597 +#: templates/js/translated/stock.js:2012 msgid "Customer no longer exists" msgstr "" -#: templates/js/translated/stock.js:1615 +#: templates/js/translated/stock.js:2030 msgid "Stock item no longer exists" msgstr "" -#: templates/js/translated/stock.js:1638 +#: templates/js/translated/stock.js:2053 msgid "Added" msgstr "" -#: templates/js/translated/stock.js:1646 +#: templates/js/translated/stock.js:2061 msgid "Removed" msgstr "" -#: templates/js/translated/stock.js:1687 +#: templates/js/translated/stock.js:2102 msgid "Edit tracking entry" msgstr "" -#: templates/js/translated/stock.js:1688 +#: templates/js/translated/stock.js:2103 msgid "Delete tracking entry" msgstr "" -#: templates/js/translated/stock.js:1812 +#: templates/js/translated/stock.js:2154 msgid "No installed items" msgstr "" -#: templates/js/translated/stock.js:1835 -msgid "Serial" -msgstr "" - -#: templates/js/translated/stock.js:1863 +#: templates/js/translated/stock.js:2205 msgid "Uninstall Stock Item" msgstr "" @@ -8023,254 +8219,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 +8489,10 @@ msgstr "" msgid "Log in again" msgstr "" +#: templates/stats.html:9 +msgid "Server" +msgstr "" + #: templates/stats.html:13 msgid "Instance Name" msgstr "" @@ -8336,54 +8546,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 +8625,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 f4ebff4dfb..dc5f5b87f4 100644 --- a/InvenTree/order/api.py +++ b/InvenTree/order/api.py @@ -49,7 +49,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() @@ -404,7 +404,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/migrations/0053_auto_20211128_0151.py b/InvenTree/order/migrations/0053_auto_20211128_0151.py new file mode 100644 index 0000000000..bbe029b4af --- /dev/null +++ b/InvenTree/order/migrations/0053_auto_20211128_0151.py @@ -0,0 +1,35 @@ +# Generated by Django 3.2.5 on 2021-11-28 01:51 + +import InvenTree.fields +import InvenTree.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('order', '0052_auto_20211014_0631'), + ] + + operations = [ + migrations.AddField( + model_name='purchaseorderattachment', + name='link', + field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external URL', null=True, verbose_name='Link'), + ), + migrations.AddField( + model_name='salesorderattachment', + name='link', + field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external URL', null=True, verbose_name='Link'), + ), + migrations.AlterField( + model_name='purchaseorderattachment', + name='attachment', + field=models.FileField(blank=True, help_text='Select file to attach', null=True, upload_to=InvenTree.models.rename_attachment, verbose_name='Attachment'), + ), + migrations.AlterField( + model_name='salesorderattachment', + name='attachment', + field=models.FileField(blank=True, help_text='Select file to attach', null=True, upload_to=InvenTree.models.rename_attachment, verbose_name='Attachment'), + ), + ] diff --git a/InvenTree/order/migrations/0054_auto_20211201_2139.py b/InvenTree/order/migrations/0054_auto_20211201_2139.py new file mode 100644 index 0000000000..8a66bbea12 --- /dev/null +++ b/InvenTree/order/migrations/0054_auto_20211201_2139.py @@ -0,0 +1,23 @@ +# Generated by Django 3.2.5 on 2021-12-01 21:39 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('order', '0053_auto_20211128_0151'), + ] + + operations = [ + migrations.AlterField( + model_name='purchaseorder', + name='reference_int', + field=models.BigIntegerField(default=0), + ), + migrations.AlterField( + model_name='salesorder', + name='reference_int', + field=models.BigIntegerField(default=0), + ), + ] diff --git a/InvenTree/order/models.py b/InvenTree/order/models.py index 42106a7376..b8fdd3870c 100644 --- a/InvenTree/order/models.py +++ b/InvenTree/order/models.py @@ -772,7 +772,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 081a92bc70..38a058ae6d 100644 --- a/InvenTree/order/serializers.py +++ b/InvenTree/order/serializers.py @@ -17,16 +17,16 @@ from rest_framework.serializers import ValidationError from sql_util.utils import SubqueryCount +from common.settings import currency_code_mappings +from company.serializers import CompanyBriefSerializer, SupplierPartSerializer + from InvenTree.serializers import InvenTreeAttachmentSerializer from InvenTree.serializers import InvenTreeModelSerializer from InvenTree.serializers import InvenTreeDecimalField from InvenTree.serializers import InvenTreeMoneySerializer -from InvenTree.serializers import InvenTreeAttachmentSerializerField - +from InvenTree.serializers import ReferenceIndexingSerializerMixin from InvenTree.status_codes import StockStatus -from company.serializers import CompanyBriefSerializer, SupplierPartSerializer - from part.serializers import PartBriefSerializer import stock.models @@ -37,10 +37,10 @@ from .models import PurchaseOrderAttachment, SalesOrderAttachment from .models import SalesOrder, SalesOrderLineItem from .models import SalesOrderAllocation -from common.settings import currency_code_mappings +from users.serializers import OwnerSerializer -class POSerializer(InvenTreeModelSerializer): +class POSerializer(ReferenceIndexingSerializerMixin, InvenTreeModelSerializer): """ Serializer for a PurchaseOrder object """ def __init__(self, *args, **kwargs): @@ -86,6 +86,8 @@ class POSerializer(InvenTreeModelSerializer): reference = serializers.CharField(required=True) + responsible_detail = OwnerSerializer(source='responsible', read_only=True, many=False) + class Meta: model = PurchaseOrder @@ -100,6 +102,7 @@ class POSerializer(InvenTreeModelSerializer): 'overdue', 'reference', 'responsible', + 'responsible_detail', 'supplier', 'supplier_detail', 'supplier_reference', @@ -374,8 +377,6 @@ class POAttachmentSerializer(InvenTreeAttachmentSerializer): Serializers for the PurchaseOrderAttachment model """ - attachment = InvenTreeAttachmentSerializerField(required=True) - class Meta: model = PurchaseOrderAttachment @@ -383,6 +384,7 @@ class POAttachmentSerializer(InvenTreeAttachmentSerializer): 'pk', 'order', 'attachment', + 'link', 'filename', 'comment', 'upload_date', @@ -393,7 +395,7 @@ class POAttachmentSerializer(InvenTreeAttachmentSerializer): ] -class SalesOrderSerializer(InvenTreeModelSerializer): +class SalesOrderSerializer(ReferenceIndexingSerializerMixin, InvenTreeModelSerializer): """ Serializers for the SalesOrder object """ @@ -553,10 +555,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 ) @@ -594,8 +596,6 @@ class SOAttachmentSerializer(InvenTreeAttachmentSerializer): Serializers for the SalesOrderAttachment model """ - attachment = InvenTreeAttachmentSerializerField(required=True) - class Meta: model = SalesOrderAttachment @@ -604,6 +604,7 @@ class SOAttachmentSerializer(InvenTreeAttachmentSerializer): 'order', 'attachment', 'filename', + 'link', 'comment', 'upload_date', ] diff --git a/InvenTree/order/templates/order/order_base.html b/InvenTree/order/templates/order/order_base.html index 42733d1178..da78b83561 100644 --- a/InvenTree/order/templates/order/order_base.html +++ b/InvenTree/order/templates/order/order_base.html @@ -53,15 +53,17 @@ {% elif order.status == PurchaseOrderStatus.PLACED %} - - {% endif %} {% endif %} -{% endblock %} +{% endblock actions %} {% block thumbnail %} - {% purchase_order_status_label order.status large=True %} - {% if order.is_overdue %} - {% trans "Overdue" %} - {% endif %} - -

{{ order.description }}{% include "clip.html"%}

- -{% endblock %} - -{% block details_right %} - +
+ + + + + @@ -103,6 +99,14 @@ src="{% static 'img/blank_image.png' %}" {% endif %} + +
{% trans "Order Reference" %} {% settings_value 'PURCHASEORDER_REFERENCE_PREFIX' %}{{ order.reference }}{% include "clip.html"%}
{% trans "Order Description" %}{{ order.description }}{% include "clip.html" %}
{% trans "Order Status" %}
+ +{% endblock %} + +{% block details_right %} + + 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/purchase_order_detail.html b/InvenTree/order/templates/order/purchase_order_detail.html index 257707347a..90a105caf1 100644 --- a/InvenTree/order/templates/order/purchase_order_detail.html +++ b/InvenTree/order/templates/order/purchase_order_detail.html @@ -27,7 +27,7 @@ {% trans "Add Line Item" %} {% elif order.status == PurchaseOrderStatus.PLACED %} - {% endif %} @@ -124,51 +124,16 @@ } ); - loadAttachmentTable( - '{% url "api-po-attachment-list" %}', - { - filters: { - order: {{ order.pk }}, - }, - onEdit: function(pk) { - var url = `/api/order/po/attachment/${pk}/`; - - constructForm(url, { - fields: { - filename: {}, - comment: {}, - }, - onSuccess: reloadAttachmentTable, - title: '{% trans "Edit Attachment" %}', - }); - }, - onDelete: function(pk) { - - constructForm(`/api/order/po/attachment/${pk}/`, { - method: 'DELETE', - confirmMessage: '{% trans "Confirm Delete Operation" %}', - title: '{% trans "Delete Attachment" %}', - onSuccess: reloadAttachmentTable, - }); + loadAttachmentTable('{% url "api-po-attachment-list" %}', { + filters: { + order: {{ order.pk }}, + }, + fields: { + order: { + value: {{ order.pk }}, + hidden: true, } } - ); - - $("#new-attachment").click(function() { - - constructForm('{% url "api-po-attachment-list" %}', { - method: 'POST', - fields: { - attachment: {}, - comment: {}, - order: { - value: {{ order.pk }}, - hidden: true, - }, - }, - reload: true, - title: '{% trans "Add Attachment" %}', - }); }); loadStockTable($("#stock-table"), { diff --git a/InvenTree/order/templates/order/sales_order_base.html b/InvenTree/order/templates/order/sales_order_base.html index 368c3a2e47..2a5a79a161 100644 --- a/InvenTree/order/templates/order/sales_order_base.html +++ b/InvenTree/order/templates/order/sales_order_base.html @@ -68,17 +68,33 @@ src="{% static 'img/blank_image.png' %}" {% endif %} {% endif %} -{% endblock %} +{% endblock actions %} {% block details %} -

- {% sales_order_status_label order.status large=True %} - {% if order.is_overdue %} - {% trans "Overdue" %} - {% endif %} -

-

{{ order.description }}{% include "clip.html"%}

+
{% trans "Supplier" %}
+ + + + + + + + + + + + + + + + +
{% trans "Order Reference" %}{% settings_value 'SALESORDER_REFERENCE_PREFIX' %}{{ order.reference }}{% include "clip.html"%}
{% trans "Order Description" %}{{ order.description }}{% include "clip.html" %}
{% trans "Order Status" %} + {% sales_order_status_label order.status %} + {% if order.is_overdue %} + {% trans "Overdue" %} + {% endif %} +
{% if order.status == SalesOrderStatus.PENDING and not order.is_fully_allocated %} @@ -93,21 +109,6 @@ src="{% static 'img/blank_image.png' %}" {% block details_right %} - - - - - - - - - - {% if order.customer %} diff --git a/InvenTree/order/templates/order/sales_order_detail.html b/InvenTree/order/templates/order/sales_order_detail.html index 887ecd390c..1cf2ce06cc 100644 --- a/InvenTree/order/templates/order/sales_order_detail.html +++ b/InvenTree/order/templates/order/sales_order_detail.html @@ -110,55 +110,21 @@ }, label: 'attachment', success: function(data, status, xhr) { - location.reload(); + reloadAttachmentTable(); } } ); - loadAttachmentTable( - '{% url "api-so-attachment-list" %}', - { - filters: { - order: {{ order.pk }}, + loadAttachmentTable('{% url "api-so-attachment-list" %}', { + filters: { + order: {{ order.pk }}, + }, + fields: { + order: { + value: {{ order.pk }}, + hidden: true, }, - onEdit: function(pk) { - var url = `/api/order/so/attachment/${pk}/`; - - constructForm(url, { - fields: { - filename: {}, - comment: {}, - }, - onSuccess: reloadAttachmentTable, - title: '{% trans "Edit Attachment" %}', - }); - }, - onDelete: function(pk) { - constructForm(`/api/order/so/attachment/${pk}/`, { - method: 'DELETE', - confirmMessage: '{% trans "Confirm Delete Operation" %}', - title: '{% trans "Delete Attachment" %}', - onSuccess: reloadAttachmentTable, - }); - } } - ); - - $("#new-attachment").click(function() { - - constructForm('{% url "api-so-attachment-list" %}', { - method: 'POST', - fields: { - attachment: {}, - comment: {}, - order: { - value: {{ order.pk }}, - hidden: true - } - }, - onSuccess: reloadAttachmentTable, - title: '{% trans "Add Attachment" %}' - }); }); loadBuildTable($("#builds-table"), { diff --git a/InvenTree/order/templates/order/so_sidebar.html b/InvenTree/order/templates/order/so_sidebar.html index be924eb37b..5f5f040c28 100644 --- a/InvenTree/order/templates/order/so_sidebar.html +++ b/InvenTree/order/templates/order/so_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='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 "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 b4eb956f9d..44effe9fb6 100644 --- a/InvenTree/order/test_api.py +++ b/InvenTree/order/test_api.py @@ -105,6 +105,25 @@ class PurchaseOrderTest(OrderTest): self.assertEqual(data['pk'], 1) self.assertEqual(data['description'], 'Ordering some screws') + def test_po_reference(self): + """test that a reference with a too big / small reference is not possible""" + # get permissions + self.assignRole('purchase_order.add') + + url = reverse('api-po-list') + huge_numer = 9223372036854775808 + + # too big + self.post( + url, + { + 'supplier': 1, + 'reference': huge_numer, + 'description': 'PO not created via the API', + }, + expected_code=400 + ) + def test_po_attachments(self): url = reverse('api-po-attachment-list') @@ -228,7 +247,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..dbc1140214 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 @@ -42,7 +42,7 @@ from build.models import Build from . import serializers as part_serializers -from InvenTree.helpers import str2bool, isNull +from InvenTree.helpers import str2bool, isNull, increment from InvenTree.api import AttachmentMixin from InvenTree.status_codes import BuildStatus @@ -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)) @@ -410,6 +410,33 @@ class PartThumbsUpdate(generics.RetrieveUpdateAPIView): ] +class PartSerialNumberDetail(generics.RetrieveAPIView): + """ + API endpoint for returning extra serial number information about a particular part + """ + + queryset = Part.objects.all() + + def retrieve(self, request, *args, **kwargs): + + part = self.get_object() + + # Calculate the "latest" serial number + latest = part.getLatestSerialNumber() + + data = { + 'latest': latest, + } + + if latest is not None: + next = increment(latest) + + if next != increment: + data['next'] = next + + return Response(data) + + class PartDetail(generics.RetrieveUpdateDestroyAPIView): """ API endpoint for detail view of a single Part object """ @@ -734,7 +761,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 +877,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 +928,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) @@ -1014,9 +1075,48 @@ class PartList(generics.ListCreateAPIView): 'revision', 'keywords', 'category__name', + 'manufacturer_parts__MPN', ] +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 +1181,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 +1189,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 +1363,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 +1397,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 +1487,7 @@ class BomItemSubstituteList(generics.ListCreateAPIView): serializer_class = part_serializers.BomItemSubstituteSerializer queryset = BomItemSubstitute.objects.all() - + filter_backends = [ DjangoFilterBackend, filters.SearchFilter, @@ -1435,6 +1541,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'), @@ -1448,7 +1560,14 @@ part_api_urls = [ url(r'^(?P\d+)/?', PartThumbsUpdate.as_view(), name='api-part-thumbs-update'), ])), - url(r'^(?P\d+)/', PartDetail.as_view(), name='api-part-detail'), + url(r'^(?P\d+)/', include([ + + # Endpoint for extra serial number information + url(r'^serial-numbers/', PartSerialNumberDetail.as_view(), name='api-part-serial-number-detail'), + + # Part detail endpoint + url(r'^.*$', PartDetail.as_view(), name='api-part-detail'), + ])), url(r'^.*$', PartList.as_view(), name='api-part-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/migrations/0075_auto_20211128_0151.py b/InvenTree/part/migrations/0075_auto_20211128_0151.py new file mode 100644 index 0000000000..d484a7adce --- /dev/null +++ b/InvenTree/part/migrations/0075_auto_20211128_0151.py @@ -0,0 +1,25 @@ +# Generated by Django 3.2.5 on 2021-11-28 01:51 + +import InvenTree.fields +import InvenTree.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('part', '0074_partcategorystar'), + ] + + operations = [ + migrations.AddField( + model_name='partattachment', + name='link', + field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external URL', null=True, verbose_name='Link'), + ), + migrations.AlterField( + model_name='partattachment', + name='attachment', + field=models.FileField(blank=True, help_text='Select file to attach', null=True, upload_to=InvenTree.models.rename_attachment, verbose_name='Attachment'), + ), + ] 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..1be81c16ba 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) @@ -75,8 +75,6 @@ class PartAttachmentSerializer(InvenTreeAttachmentSerializer): Serializer for the PartAttachment class """ - attachment = InvenTreeAttachmentSerializerField(required=True) - class Meta: model = PartAttachment @@ -85,6 +83,7 @@ class PartAttachmentSerializer(InvenTreeAttachmentSerializer): 'part', 'attachment', 'filename', + 'link', 'comment', 'upload_date', ] @@ -388,6 +387,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 +464,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 +538,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.html b/InvenTree/part/templates/part/category.html index bc8a99a3dd..4797571fda 100644 --- a/InvenTree/part/templates/part/category.html +++ b/InvenTree/part/templates/part/category.html @@ -61,29 +61,43 @@ {% endblock %} {% block details_left %} -{% if category %} -

{{ category.description }}

-{% else %} -

{% trans "Top level part category" %}

-{% endif %} - -{% endblock %} +
{% trans "Order Reference" %}{% settings_value 'SALESORDER_REFERENCE_PREFIX' %}{{ order.reference }}{% include "clip.html"%}
{% trans "Order Status" %} - {% sales_order_status_label order.status %} - {% if order.is_overdue %} - {% trans "Overdue" %} - {% endif %} -
+ + {% if category %} + {% if category.description %} + + + + + + {% endif %} + + + + + + {% if category.default_keywords %} + + + + + + {% endif %} + {% else %} + + + + + + {% endif %} +
{% trans "Description" %}{{ category.description }}
{% trans "Category Path" %}{{ category.pathstring }}
{% trans "Keywords" %}{{ category.default_keywords }}
{% trans "Category Path" %}{% trans "Top level part category" %}
+{% endblock details_left %} {% block details_right %} {% if category %} - - - - - - - - - - {% if category.default_location %} @@ -91,13 +105,6 @@ {% endif %} - {% if category.default_keywords %} - - - - - - {% endif %} @@ -124,7 +131,7 @@
{% trans "Category Path" %}{{ category.pathstring }}
{% trans "Category Description" %}{{ category.description }}
{{ category.default_location.pathstring }}
{% trans "Keywords" %}{{ category.default_keywords }}
{% trans "Subcategories" %}
{% endif %} -{% endblock %} +{% endblock details_right %} {% block page_content %} 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..ce78e445e1 100644 --- a/InvenTree/part/templates/part/detail.html +++ b/InvenTree/part/templates/part/detail.html @@ -11,113 +11,6 @@ {% block page_content %} -
-
-

{% trans "Part Details" %}

-
-
- - - - - - - - - - - - - - - {% if part.category %} - - - - - - {% endif %} - {% if part.IPN %} - - - - - - {% endif %} - {% if part.revision %} - - - - - - {% endif %} - {% if part.units %} - - - - - - {% endif %} - {% if part.minimum_stock %} - - - - - - {% endif %} - {% if part.keywords %} - - - - - - {% endif %} - {% if part.link %} - - - - - - {% endif %} - - - - - - {% if part.trackable and part.getLatestSerialNumber %} - - - - - - {% endif %} - {% if part.default_location %} - - - - - - {% endif %} - {% if part.default_supplier %} - - - - - - {% endif %} -
{% trans "Name" %}{{ part.name }}{% include "clip.html"%}
{% trans "Description" %}{{ part.description }}{% include "clip.html"%}
{% trans "Category" %} - {{ part.category.name }} -
{% trans "IPN" %}{{ part.IPN }}{% include "clip.html"%}
{% trans "Revision" %}{{ part.revision }}{% include "clip.html"%}
{% trans "Units" %}{{ part.units }}
{% trans "Minimum stock level" %}{{ part.minimum_stock }}
{% trans "Keywords" %}{{ part.keywords }}{% include "clip.html"%}
{% trans "External Link" %}{{ part.link }}{% include "clip.html"%}
{% trans "Creation Date" %} - {{ part.creation_date }} - {% if part.creation_user %} - {{ part.creation_user }} - {% endif %} -
{% trans "Latest Serial Number" %}{{ part.getLatestSerialNumber }}{% include "clip.html"%}
{% trans "Default Location" %} - {{ part.default_location }} -
{% trans "Default Supplier" %}{{ part.default_supplier }}
-
-
-
@@ -329,34 +222,8 @@ {% include "filter_list.html" with id="related" %}
- - - - - - - - - {% for item in part.get_related_parts %} - {% with part_related=item.0 part=item.1 %} - - - - {% endwith %} - {% endfor %} - - + +
@@ -771,15 +638,34 @@ // 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_id: {{ part.pk }}, + exclude_related: {{ part.pk }}, + } + } }, - reload: true, + focus: 'part_2', + title: '{% trans "Add Related Part" %}', + onSuccess: function() { + $('#related-parts-table').bootstrapTable('refresh'); + } }); }); @@ -1006,36 +892,17 @@ }); onPanelLoad("part-attachments", function() { - loadAttachmentTable( - '{% url "api-part-attachment-list" %}', - { - filters: { - part: {{ part.pk }}, - }, - onEdit: function(pk) { - var url = `/api/part/attachment/${pk}/`; - - constructForm(url, { - fields: { - filename: {}, - comment: {}, - }, - title: '{% trans "Edit Attachment" %}', - onSuccess: reloadAttachmentTable, - }); - }, - onDelete: function(pk) { - var url = `/api/part/attachment/${pk}/`; - - constructForm(url, { - method: 'DELETE', - confirmMessage: '{% trans "Confirm Delete Operation" %}', - title: '{% trans "Delete Attachment" %}', - onSuccess: reloadAttachmentTable, - }); + loadAttachmentTable('{% url "api-part-attachment-list" %}', { + filters: { + part: {{ part.pk }}, + }, + fields: { + part: { + value: {{ part.pk }}, + hidden: true } } - ); + }); enableDragAndDrop( '#attachment-dropzone', @@ -1050,26 +917,6 @@ } } ); - - $("#new-attachment").click(function() { - - constructForm( - '{% url "api-part-attachment-list" %}', - { - method: 'POST', - fields: { - attachment: {}, - comment: {}, - part: { - value: {{ part.pk }}, - hidden: true, - } - }, - onSuccess: reloadAttachmentTable, - title: '{% trans "Add Attachment" %}', - } - ) - }); }); 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_base.html b/InvenTree/part/templates/part/part_base.html index 4ca7c80d65..d2505a57f7 100644 --- a/InvenTree/part/templates/part/part_base.html +++ b/InvenTree/part/templates/part/part_base.html @@ -99,53 +99,71 @@ {% block details %} - - -

-
- {% if part.is_template %} -   - - {% endif %} - {% if part.assembly %} -   - - {% endif %} - {% if part.component %} -   - - {% endif %} - {% if part.trackable %} -   - - {% endif %} - {% if part.purchaseable %} -   - - {% endif %} - {% if part.salable %} -   - - {% endif %} - - {% if not part.active %} -   -
- - {% trans 'Inactive' %} -
- {% endif %} - - {% if part.virtual and part.active %} -   -
- - {% trans 'Virtual' %} -
- {% endif %} -
-

+ + + + + + + + + + +
+
+
+
+ {% if part.is_template %} +   + + {% endif %} + {% if part.assembly %} +   + + {% endif %} + {% if part.component %} +   + + {% endif %} + {% if part.trackable %} +   + + {% endif %} + {% if part.purchaseable %} +   + + {% endif %} + {% if part.salable %} +   + + {% endif %} + + {% if not part.active %} +   +
+ + {% trans 'Inactive' %} +
+ {% endif %} + + {% if part.virtual and part.active %} +   +
+ + {% trans 'Virtual' %} +
+ {% endif %} +
+
+ + {% include "spacer.html" %} + + +
+
{% trans "Description" %}{{ part.description }}{% include "clip.html"%}
@@ -157,7 +175,7 @@ {% endif %}
-{% endblock %} +{% endblock details %} {% block details_right %} @@ -231,7 +249,118 @@ {% endif %} {% endif %}
-{% endblock %} +{% endblock details_right %} + +{% block details_below %} + +
+
+
+ + + + {% if part.category %} + + + + + + {% endif %} + {% if part.IPN %} + + + + + + {% endif %} + {% if part.revision %} + + + + + + {% endif %} + {% if part.units %} + + + + + + {% endif %} + {% if part.minimum_stock %} + + + + + + {% endif %} + {% if part.keywords %} + + + + + + {% endif %} +
{% trans "Category" %} + {{ part.category.name }} +
{% trans "IPN" %}{{ part.IPN }}{% include "clip.html"%}
{% trans "Revision" %}{{ part.revision }}{% include "clip.html"%}
{% trans "Units" %}{{ part.units }}
{% trans "Minimum stock level" %}{{ part.minimum_stock }}
{% trans "Keywords" %}{{ part.keywords }}{% include "clip.html"%}
+
+
+ + + + + + + + {% if part.trackable and part.getLatestSerialNumber %} + + + + + + {% endif %} + {% if part.default_location %} + + + + + + {% endif %} + {% if part.default_supplier %} + + + + + + {% endif %} + {% if part.link %} + + + + + + {% endif %} +
{% trans "Creation Date" %} + {{ part.creation_date }} + {% if part.creation_user %} + {{ part.creation_user }} + {% endif %} +
{% trans "Latest Serial Number" %} + {{ part.getLatestSerialNumber }} +
+ + + +
+
{% trans "Default Location" %} + {{ part.default_location }} +
{% trans "Default Supplier" %}{{ part.default_supplier }}
{% trans "External Link" %}{{ part.link }}{% include "clip.html"%}
+
+
+
+ +{% endblock details_below %} {% block js_ready %} {{ block.super }} @@ -439,4 +568,24 @@ }); {% endif %} + // Callback function when the "part details" panel is shown + $('#collapse-part-details').on('show.bs.collapse', function() { + $('#toggle-details-button').html('{% trans "Hide Part Details" %}'); + inventreeSave('show-part-details', true); + }); + + // Callback function when the "part details" panel is hidden + $('#collapse-part-details').on('hide.bs.collapse', function() { + $('#toggle-details-button').html('{% trans "Show Part Details" %}'); + inventreeSave('show-part-details', false); + }); + + if (inventreeLoad('show-part-details', false).toString() == 'true') { + $('#collapse-part-details').collapse('show'); + } + + $('#serial-number-search').click(function() { + findStockItemBySerialNumber({{ part.pk }}); + }); + {% endblock %} \ No newline at end of file diff --git a/InvenTree/part/templates/part/part_sidebar.html b/InvenTree/part/templates/part/part_sidebar.html index 9a918d17d7..f4e59af865 100644 --- a/InvenTree/part/templates/part/part_sidebar.html +++ b/InvenTree/part/templates/part/part_sidebar.html @@ -5,34 +5,47 @@ {% 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 "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..6e742dc571 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 @@ -508,10 +439,14 @@ class PartDetail(InvenTreeRoleMixin, DetailView): line['price_part'] = stock_item.supplier_part.unit_pricing # set date for graph labels - if stock_item.purchase_order: + if stock_item.purchase_order and stock_item.purchase_order.issue_date: line['date'] = stock_item.purchase_order.issue_date.strftime('%d.%m.%Y') - else: + elif stock_item.tracking_info.count() > 0: line['date'] = stock_item.tracking_info.first().date.strftime('%d.%m.%Y') + else: + # Not enough information + continue + price_history.append(line) ctx['price_history'] = price_history @@ -1056,7 +991,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 +1455,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..8385041209 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 @@ -313,7 +313,7 @@ class StockFilter(rest_filters.FilterSet): # Serial number filtering serial_gte = rest_filters.NumberFilter(label='Serial number GTE', field_name='serial', lookup_expr='gte') serial_lte = rest_filters.NumberFilter(label='Serial number LTE', field_name='serial', lookup_expr='lte') - serial = rest_filters.NumberFilter(label='Serial number', field_name='serial', lookup_expr='exact') + serial = rest_filters.CharFilter(label='Serial number', field_name='serial', lookup_expr='exact') serialized = rest_filters.BooleanFilter(label='Has serial number', method='filter_serialized') @@ -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() @@ -703,6 +703,18 @@ class StockList(generics.ListCreateAPIView): except (ValueError, StockItem.DoesNotExist): pass + # Filter by "part tree" - only allow parts within a given variant tree + part_tree = params.get('part_tree', None) + + if part_tree is not None: + try: + part = Part.objects.get(pk=part_tree) + + if part.tree_id is not None: + queryset = queryset.filter(part__tree_id=part.tree_id) + except: + pass + # Filter by 'allocated' parts? allocated = params.get('allocated', None) 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/migrations/0070_auto_20211128_0151.py b/InvenTree/stock/migrations/0070_auto_20211128_0151.py new file mode 100644 index 0000000000..a2f6ef322d --- /dev/null +++ b/InvenTree/stock/migrations/0070_auto_20211128_0151.py @@ -0,0 +1,25 @@ +# Generated by Django 3.2.5 on 2021-11-28 01:51 + +import InvenTree.fields +import InvenTree.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stock', '0069_auto_20211109_2347'), + ] + + operations = [ + migrations.AddField( + model_name='stockitemattachment', + name='link', + field=InvenTree.fields.InvenTreeURLField(blank=True, help_text='Link to external URL', null=True, verbose_name='Link'), + ), + migrations.AlterField( + model_name='stockitemattachment', + name='attachment', + field=models.FileField(blank=True, help_text='Select file to attach', null=True, upload_to=InvenTree.models.rename_attachment, verbose_name='Attachment'), + ), + ] diff --git a/InvenTree/stock/models.py b/InvenTree/stock/models.py index 70e557a901..0aa63687c9 100644 --- a/InvenTree/stock/models.py +++ b/InvenTree/stock/models.py @@ -7,7 +7,6 @@ Stock database model definitions from __future__ import unicode_literals import os -import re from django.utils.translation import gettext_lazy as _ from django.core.exceptions import ValidationError, FieldError @@ -39,6 +38,7 @@ import label.models from InvenTree.status_codes import StockStatus, StockHistoryCode from InvenTree.models import InvenTreeTree, InvenTreeAttachment from InvenTree.fields import InvenTreeModelMoneyField, InvenTreeURLField +from InvenTree.serializers import extract_int from users.models import Owner @@ -236,17 +236,7 @@ class StockItem(MPTTModel): serial_int = 0 if serial is not None: - - serial = str(serial) - - # Look at the start of the string - can it be "integerized"? - result = re.match(r'^(\d+)', serial) - - if result and len(result.groups()) == 1: - try: - serial_int = int(result.groups()[0]) - except: - serial_int = 0 + serial_int = extract_int(str(serial)) self.serial_int = serial_int @@ -272,7 +262,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..9bd5ea64be 100644 --- a/InvenTree/stock/serializers.py +++ b/InvenTree/stock/serializers.py @@ -32,7 +32,7 @@ from company.serializers import SupplierPartSerializer import InvenTree.helpers import InvenTree.serializers -from InvenTree.serializers import InvenTreeDecimalField +from InvenTree.serializers import InvenTreeDecimalField, extract_int from part.serializers import PartBriefSerializer @@ -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: @@ -73,6 +73,11 @@ class StockItemSerializerBrief(InvenTree.serializers.InvenTreeModelSerializer): 'uid', ] + def validate_serial(self, value): + if extract_int(value) > 2147483647: + raise serializers.ValidationError('serial is to to big') + return value + class StockItemSerializer(InvenTree.serializers.InvenTreeModelSerializer): """ Serializer for a StockItem: @@ -420,8 +425,6 @@ class StockItemAttachmentSerializer(InvenTree.serializers.InvenTreeAttachmentSer user_detail = InvenTree.serializers.UserSerializerBrief(source='user', read_only=True) - attachment = InvenTree.serializers.InvenTreeAttachmentSerializerField(required=True) - # TODO: Record the uploading user when creating or updating an attachment! class Meta: @@ -432,6 +435,7 @@ class StockItemAttachmentSerializer(InvenTree.serializers.InvenTreeAttachmentSer 'stock_item', 'attachment', 'filename', + 'link', 'comment', 'upload_date', 'user', @@ -615,7 +619,7 @@ class StockCountSerializer(StockAdjustmentSerializer): stock_item = item['pk'] quantity = item['quantity'] - + stock_item.stocktake( quantity, request.user, @@ -654,7 +658,7 @@ class StockRemoveSerializer(StockAdjustmentSerializer): """ def save(self): - + request = self.context['request'] data = self.validated_data @@ -707,7 +711,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/item.html b/InvenTree/stock/templates/stock/item.html index 9bafc2633c..9cc6d85aeb 100644 --- a/InvenTree/stock/templates/stock/item.html +++ b/InvenTree/stock/templates/stock/item.html @@ -221,55 +221,16 @@ } ); - loadAttachmentTable( - '{% url "api-stock-attachment-list" %}', - { - filters: { - stock_item: {{ item.pk }}, - }, - onEdit: function(pk) { - var url = `/api/stock/attachment/${pk}/`; - - constructForm(url, { - fields: { - filename: {}, - comment: {}, - }, - title: '{% trans "Edit Attachment" %}', - onSuccess: reloadAttachmentTable - }); - }, - onDelete: function(pk) { - var url = `/api/stock/attachment/${pk}/`; - - constructForm(url, { - method: 'DELETE', - confirmMessage: '{% trans "Confirm Delete Operation" %}', - title: '{% trans "Delete Attachment" %}', - onSuccess: reloadAttachmentTable, - }); + loadAttachmentTable('{% url "api-stock-attachment-list" %}', { + filters: { + stock_item: {{ item.pk }}, + }, + fields: { + stock_item: { + value: {{ item.pk }}, + hidden: true, } } - ); - - $("#new-attachment").click(function() { - - constructForm( - '{% url "api-stock-attachment-list" %}', - { - method: 'POST', - fields: { - attachment: {}, - comment: {}, - stock_item: { - value: {{ item.pk }}, - hidden: true, - }, - }, - reload: true, - title: '{% trans "Add Attachment" %}', - } - ); }); loadStockTestResultsTable( diff --git a/InvenTree/stock/templates/stock/item_base.html b/InvenTree/stock/templates/stock/item_base.html index 0f8d81203a..0d5ab272d6 100644 --- a/InvenTree/stock/templates/stock/item_base.html +++ b/InvenTree/stock/templates/stock/item_base.html @@ -14,7 +14,7 @@ {% block heading %} {% trans "Stock Item" %}: {{ item.part.full_name}} -{% endblock %} +{% endblock heading %} {% block actions %} @@ -100,7 +100,9 @@ {% if roles.stock.change and not item.is_building %}
- +
{% endif %} {% endif %} -{% endblock %} +{% endblock actions %} {% block thumbnail %} -{% endblock %} +{% endblock thumbnail %} {% block details %} + + + + + + + + {% if item.serialized %} + + + + + + {% else %} + + + + + + {% endif %} + + + + + + {% if item.expiry_date %} + + + + + + {% endif %} + + + + + + + + + {% if item.stocktake_date %} + + {% else %} + + {% endif %} + +
{% trans "Base Part" %} + {% if roles.part.view %} + + {% endif %} + {{ item.part.full_name }} + {% if roles.part.view %} + + {% endif %} +
{% trans "Serial Number" %} + {{ item.serial }} +
+ {% if previous %} + + + {{ previous.serial }} + + {% endif %} + + + + {% if next %} + + {{ next.serial }} + + + {% endif %} +
+
{% trans "Quantity" %}{% decimal item.quantity %} {% if item.part.units %}{{ item.part.units }}{% endif %}
{% trans "Status" %}{% stock_status_label item.status %}
{% trans "Expiry Date" %} + {{ item.expiry_date }} + {% if item.is_expired %} + {% trans "Expired" %} + {% elif item.is_stale %} + {% trans "Stale" %} + {% endif %} +
{% trans "Last Updated" %}{{ item.updated }}
{% trans "Last Stocktake" %}{{ item.stocktake_date }} {{ item.stocktake_user }}{% trans "No stocktake performed" %}
+ {% setting_object 'STOCK_OWNERSHIP_CONTROL' as owner_control %} {% if owner_control.value == "True" %} {% authorized_owners item.owner as owners %} {% endif %} -

- {% if item.is_expired %} - {% trans "Expired" %} - {% else %} - {% if roles.stock.change %} - - {% endif %} - {% stock_status_label item.status large=True %} - {% if roles.stock.change %} - - {% endif %} - {% if item.is_stale %} - {% trans "Stale" %} - {% endif %} - {% endif %} -

- - -
{% setting_object 'STOCK_OWNERSHIP_CONTROL' as owner_control %} @@ -214,49 +279,12 @@ {% endif %}
-{% endblock %} +{% endblock details %} {% block details_right %} - +
- - - - - - {% if item.serialized %} - - - - - - {% else %} - - - - - - {% endif %} + {% if item.customer %} @@ -376,39 +404,6 @@ {% endif %} - {% if item.expiry_date %} - - - - - - {% endif %} - - - - - - - - - {% if item.stocktake_date %} - - {% else %} - - {% endif %} - - - - - - {% if item.hasRequiredTests %} @@ -433,6 +428,7 @@ $("#stock-serialize").click(function() { serializeStockItem({{ item.pk }}, { + part: {{ item.part.pk }}, reload: true, data: { quantity: {{ item.quantity }}, @@ -603,4 +599,8 @@ $("#stock-return-from-customer").click(function() { {% endif %} +$('#serial-number-search').click(function() { + findStockItemBySerialNumber({{ item.part.pk }}); +}); + {% endblock %} diff --git a/InvenTree/stock/templates/stock/location.html b/InvenTree/stock/templates/stock/location.html index 18b78b2290..6a201e610c 100644 --- a/InvenTree/stock/templates/stock/location.html +++ b/InvenTree/stock/templates/stock/location.html @@ -80,12 +80,32 @@ {% endblock %} {% block details_left %} -{% if location %} -

{{ location.description }}

-{% else %} -

{% trans "Top level stock location" %}

-{% endif %} +
{% trans "Base Part" %} - {% if roles.part.view %} - - {% endif %} - {{ item.part.full_name }} - {% if roles.part.view %} - - {% endif %} -
{% trans "Serial Number" %} - {% if previous %} - - {{ previous.serial }} ‹ - - {% endif %} - {{ item.serial }} - {% if next %} - - › {{ next.serial }} - - {% endif %} -
{% trans "Quantity" %}{% decimal item.quantity %} {% if item.part.units %}{{ item.part.units }}{% endif %}
{{ item.supplier_part.SKU }}
{% trans "Expiry Date" %} - {{ item.expiry_date }} - {% if item.is_expired %} - {% trans "Expired" %} - {% elif item.is_stale %} - {% trans "Stale" %} - {% endif %} -
{% trans "Last Updated" %}{{ item.updated }}
{% trans "Last Stocktake" %}{{ item.stocktake_date }} {{ item.stocktake_user }}{% trans "No stocktake performed" %}
{% trans "Status" %}{% stock_status_label item.status %}
+ + {% if location %} + {% if location.description %} + + + + + + {% endif %} + + + + + + {% else %} + + + + + + {% endif %} +
{% trans "Description" %}{{ location.description }}
{% trans "Location Path" %}{{ location.pathstring }}
{% trans "Location Path" %}{% trans "Top level stock location" %}
+{% endblock details_left %} +{% block details_below %} {% setting_object 'STOCK_OWNERSHIP_CONTROL' as owner_control %} {% if owner_control.value == "True" %} {% authorized_owners location.owner as owners %} @@ -97,17 +117,12 @@ {% endif %} {% endif %} -{% endblock %} +{% endblock details_below %} {% block details_right %} {% if location %} - - - - - @@ -134,7 +149,7 @@
{% trans "Description" %}{{ location.description }}
{% trans "Sublocations" %}
{% endif %} -{% endblock %} +{% endblock details_right %} {% block page_content %} 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 c9ba4fd6b1..ae04568f53 100644 --- a/InvenTree/templates/InvenTree/settings/user.html +++ b/InvenTree/templates/InvenTree/settings/user.html @@ -4,6 +4,7 @@ {% load inventree_extras %} {% load socialaccount %} {% load crispy_forms_tags %} +{% load user_sessions i18n %} {% block label %}account{% endblock %} @@ -14,12 +15,12 @@ {% block actions %} {% inventree_demo_mode as demo %} {% if not demo %} +
+ {% trans "Set Password" %} +
{% trans "Edit" %}
-
- {% trans "Set Password" %} -
{% endif %} {% endblock %} @@ -238,6 +239,7 @@
+
@@ -294,6 +296,51 @@
+
+
+
+

{% trans "Active Sessions" %}

+ {% include "spacer.html" %} +
+ {% if session_list.count > 1 %} +
+ {% csrf_token %} + +
+ {% endif %} +
+
+
+ +
+ {% trans "unknown on unknown" as unknown_on_unknown %} + {% trans "unknown" as unknown %} + + + + + + + + + {% for object in session_list %} + + + + + + {% endfor %} +
{% trans "IP Address" %}{% trans "Device" %}{% trans "Last Activity" %}
{{ object.ip }}{{ object.user_agent|device|default_if_none:unknown_on_unknown|safe }} + {% if object.session_key == session_key %} + {% blocktrans with time=object.last_activity|timesince %}{{ time }} ago (this session){% endblocktrans %} + {% else %} + {% blocktrans with time=object.last_activity|timesince %}{{ time }} ago{% endblocktrans %} + {% endif %} +
+
+
{% endblock %} {% block js_ready %} diff --git a/InvenTree/templates/InvenTree/settings/user_display.html b/InvenTree/templates/InvenTree/settings/user_display.html index ae7843df9c..9f5c22f991 100644 --- a/InvenTree/templates/InvenTree/settings/user_display.html +++ b/InvenTree/templates/InvenTree/settings/user_display.html @@ -50,4 +50,57 @@ +
+

{% trans "Language Settings" %}

+
+ +
+
+
+ {% csrf_token %} + + +
+ +
+ +
+
+

{% trans "Some languages are not complete" %} + {% if ALL_LANG %} + . {% trans "Show only sufficent" %} + {% else %} + {% trans "and hidden." %} {% trans "Show them too" %} + {% endif %} +

+
+
+
+

{% trans "Help the translation efforts!" %}

+

{% blocktrans with link="https://crowdin.com/project/inventree" %}Native language translation of the InvenTree web application is community contributed via crowdin. Contributions are welcomed and encouraged.{% endblocktrans %}

+
+
+ {% endblock %} \ No newline at end of file diff --git a/InvenTree/templates/attachment_button.html b/InvenTree/templates/attachment_button.html index e1561010c0..d220f4829d 100644 --- a/InvenTree/templates/attachment_button.html +++ b/InvenTree/templates/attachment_button.html @@ -1,5 +1,8 @@ {% load i18n %} + \ No newline at end of file diff --git a/InvenTree/templates/base.html b/InvenTree/templates/base.html index 262a749bfa..2843264243 100644 --- a/InvenTree/templates/base.html +++ b/InvenTree/templates/base.html @@ -40,8 +40,8 @@ - - + + @@ -180,9 +180,9 @@ - - - + + + {% block js_load %} {% endblock %} diff --git a/InvenTree/templates/js/translated/api.js b/InvenTree/templates/js/translated/api.js index 735ce0a676..d9c23f035f 100644 --- a/InvenTree/templates/js/translated/api.js +++ b/InvenTree/templates/js/translated/api.js @@ -54,6 +54,7 @@ function inventreeGet(url, filters={}, options={}) { data: filters, dataType: 'json', contentType: 'application/json', + async: (options.async == false) ? false : true, success: function(response) { if (options.success) { options.success(response); diff --git a/InvenTree/templates/js/translated/attachment.js b/InvenTree/templates/js/translated/attachment.js index 5ff5786588..5c5af5682f 100644 --- a/InvenTree/templates/js/translated/attachment.js +++ b/InvenTree/templates/js/translated/attachment.js @@ -6,10 +6,57 @@ */ /* exported + addAttachmentButtonCallbacks, loadAttachmentTable, reloadAttachmentTable, */ + +/* + * Add callbacks to buttons for creating new attachments. + * + * Note: Attachments can also be external links! + */ +function addAttachmentButtonCallbacks(url, fields={}) { + + // Callback for 'new attachment' button + $('#new-attachment').click(function() { + + var file_fields = { + attachment: {}, + comment: {}, + }; + + Object.assign(file_fields, fields); + + constructForm(url, { + fields: file_fields, + method: 'POST', + onSuccess: reloadAttachmentTable, + title: '{% trans "Add Attachment" %}', + }); + }); + + // Callback for 'new link' button + $('#new-attachment-link').click(function() { + + var link_fields = { + link: {}, + comment: {}, + }; + + Object.assign(link_fields, fields); + + constructForm(url, { + fields: link_fields, + method: 'POST', + onSuccess: reloadAttachmentTable, + title: '{% trans "Add Link" %}', + }); + }); +} + + function reloadAttachmentTable() { $('#attachment-table').bootstrapTable('refresh'); @@ -20,6 +67,8 @@ function loadAttachmentTable(url, options) { var table = options.table || '#attachment-table'; + addAttachmentButtonCallbacks(url, options.fields || {}); + $(table).inventreeTable({ url: url, name: options.name || 'attachments', @@ -34,56 +83,77 @@ function loadAttachmentTable(url, options) { $(table).find('.button-attachment-edit').click(function() { var pk = $(this).attr('pk'); - if (options.onEdit) { - options.onEdit(pk); - } + constructForm(`${url}${pk}/`, { + fields: { + link: {}, + comment: {}, + }, + processResults: function(data, fields, opts) { + // Remove the "link" field if the attachment is a file! + if (data.attachment) { + delete opts.fields.link; + } + }, + onSuccess: reloadAttachmentTable, + title: '{% trans "Edit Attachment" %}', + }); }); // Add callback for 'delete' button $(table).find('.button-attachment-delete').click(function() { var pk = $(this).attr('pk'); - if (options.onDelete) { - options.onDelete(pk); - } + constructForm(`${url}${pk}/`, { + method: 'DELETE', + confirmMessage: '{% trans "Confirm Delete" %}', + title: '{% trans "Delete Attachment" %}', + onSuccess: reloadAttachmentTable, + }); }); }, columns: [ { field: 'attachment', - title: '{% trans "File" %}', - formatter: function(value) { + title: '{% trans "Attachment" %}', + formatter: function(value, row) { - var icon = 'fa-file-alt'; + if (row.attachment) { + var icon = 'fa-file-alt'; - var fn = value.toLowerCase(); + var fn = value.toLowerCase(); - if (fn.endsWith('.csv')) { - icon = 'fa-file-csv'; - } else if (fn.endsWith('.pdf')) { - icon = 'fa-file-pdf'; - } else if (fn.endsWith('.xls') || fn.endsWith('.xlsx')) { - icon = 'fa-file-excel'; - } else if (fn.endsWith('.doc') || fn.endsWith('.docx')) { - icon = 'fa-file-word'; - } else if (fn.endsWith('.zip') || fn.endsWith('.7z')) { - icon = 'fa-file-archive'; + if (fn.endsWith('.csv')) { + icon = 'fa-file-csv'; + } else if (fn.endsWith('.pdf')) { + icon = 'fa-file-pdf'; + } else if (fn.endsWith('.xls') || fn.endsWith('.xlsx')) { + icon = 'fa-file-excel'; + } else if (fn.endsWith('.doc') || fn.endsWith('.docx')) { + icon = 'fa-file-word'; + } else if (fn.endsWith('.zip') || fn.endsWith('.7z')) { + icon = 'fa-file-archive'; + } else { + var images = ['.png', '.jpg', '.bmp', '.gif', '.svg', '.tif']; + + images.forEach(function(suffix) { + if (fn.endsWith(suffix)) { + icon = 'fa-file-image'; + } + }); + } + + var split = value.split('/'); + var filename = split[split.length - 1]; + + var html = ` ${filename}`; + + return renderLink(html, value); + } else if (row.link) { + var html = ` ${row.link}`; + return renderLink(html, row.link); } else { - var images = ['.png', '.jpg', '.bmp', '.gif', '.svg', '.tif']; - - images.forEach(function(suffix) { - if (fn.endsWith(suffix)) { - icon = 'fa-file-image'; - } - }); + return '-'; } - - var split = value.split('/'); - var filename = split[split.length - 1]; - - var html = ` ${filename}`; - - return renderLink(html, value); } }, { 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/forms.js b/InvenTree/templates/js/translated/forms.js index fd1668cc77..5af85d382e 100644 --- a/InvenTree/templates/js/translated/forms.js +++ b/InvenTree/templates/js/translated/forms.js @@ -28,6 +28,7 @@ disableFormInput, enableFormInput, hideFormInput, + setFormInputPlaceholder, setFormGroupVisibility, showFormInput, */ @@ -1276,6 +1277,11 @@ function initializeGroups(fields, options) { } } +// Set the placeholder value for a field +function setFormInputPlaceholder(name, placeholder, options) { + $(options.modal).find(`#id_${name}`).attr('placeholder', placeholder); +} + // Clear a form input function clearFormInput(name, options) { updateFieldValue(name, null, {}, options); diff --git a/InvenTree/templates/js/translated/order.js b/InvenTree/templates/js/translated/order.js index b0e3009720..a471182399 100644 --- a/InvenTree/templates/js/translated/order.js +++ b/InvenTree/templates/js/translated/order.js @@ -695,6 +695,28 @@ function loadPurchaseOrderTable(table, options) { title: '{% trans "Items" %}', sortable: true, }, + { + field: 'responsible', + title: '{% trans "Responsible" %}', + switchable: true, + sortable: false, + formatter: function(value, row) { + + if (!row.responsible_detail) { + return '-'; + } + + var html = row.responsible_detail.name; + + if (row.responsible_detail.label == 'group') { + html += ``; + } else { + html += ``; + } + + return html; + } + }, ], }); } diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js index 89e09a314e..0a27f2ba2f 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, @@ -152,12 +153,7 @@ function partFields(options={}) { delete fields['default_expiry']; } - // Additional fields when "creating" a new part - if (options.create) { - - // No supplier parts available yet - delete fields['default_supplier']; - + if (options.create || options.duplicate) { if (global_settings.PART_CREATE_INITIAL) { fields.initial_stock = { @@ -186,6 +182,13 @@ function partFields(options={}) { group: 'create', }; } + } + + // Additional fields when "creating" a new part + if (options.create) { + + // No supplier parts available yet + delete fields['default_supplier']; fields.copy_category_parameters = { type: 'boolean', @@ -348,6 +351,10 @@ function duplicatePart(pk, options={}) { duplicate: pk, }); + if (fields.initial_stock_location) { + fields.initial_stock_location.value = data.default_location; + } + // Remove "default_supplier" field delete fields['default_supplier']; @@ -705,6 +712,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 +934,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 +977,7 @@ function loadPartTable(table, url, options={}) { col = { field: 'IPN', - title: 'IPN', + title: '{% trans "IPN" %}', }; if (!options.params.ordering) { @@ -895,7 +994,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 +1092,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 +1134,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..02ea3c2c3b 100644 --- a/InvenTree/templates/js/translated/stock.js +++ b/InvenTree/templates/js/translated/stock.js @@ -44,6 +44,7 @@ editStockItem, editStockLocation, exportStock, + findStockItemBySerialNumber, loadInstalledInTable, loadStockLocationTable, loadStockTable, @@ -80,6 +81,20 @@ function serializeStockItem(pk, options={}) { notes: {}, }; + if (options.part) { + // Work out the next available serial number + inventreeGet(`/api/part/${options.part}/serial-numbers/`, {}, { + success: function(data) { + if (data.next) { + options.fields.serial_numbers.placeholder = `{% trans "Next available serial number" %}: ${data.next}`; + } else if (data.latest) { + options.fields.serial_numbers.placeholder = `{% trans "Latest serial number" %}: ${data.latest}`; + } + }, + async: false, + }); + } + constructForm(url, options); } @@ -144,10 +159,26 @@ function stockItemFields(options={}) { // If a "trackable" part is selected, enable serial number field if (data.trackable) { enableFormInput('serial_numbers', opts); - // showFormInput('serial_numbers', opts); + + // Request part serial number information from the server + inventreeGet(`/api/part/${data.pk}/serial-numbers/`, {}, { + success: function(data) { + var placeholder = ''; + if (data.next) { + placeholder = `{% trans "Next available serial number" %}: ${data.next}`; + } else if (data.latest) { + placeholder = `{% trans "Latest serial number" %}: ${data.latest}`; + } + + setFormInputPlaceholder('serial_numbers', placeholder, opts); + } + }); + } else { clearFormInput('serial_numbers', opts); disableFormInput('serial_numbers', opts); + + setFormInputPlaceholder('serial_numbers', '{% trans "This part cannot be serialized" %}', opts); } // Enable / disable fields based on purchaseable status @@ -364,6 +395,87 @@ function createNewStockItem(options={}) { constructForm(url, options); } +/* + * Launch a modal form to find a particular stock item by serial number. + * Arguments: + * - part: ID (PK) of the part in question + */ + +function findStockItemBySerialNumber(part_id) { + + constructFormBody({}, { + title: '{% trans "Find Serial Number" %}', + fields: { + serial: { + label: '{% trans "Serial Number" %}', + help_text: '{% trans "Enter serial number" %}', + placeholder: '{% trans "Enter serial number" %}', + required: true, + type: 'string', + value: '', + } + }, + onSubmit: function(fields, opts) { + + var serial = getFormFieldValue('serial', fields['serial'], opts); + + serial = serial.toString().trim(); + + if (!serial) { + handleFormErrors( + { + 'serial': [ + '{% trans "Enter a serial number" %}', + ] + }, fields, opts + ); + return; + } + + inventreeGet( + '{% url "api-stock-list" %}', + { + part_tree: part_id, + serial: serial, + }, + { + success: function(response) { + if (response.length == 0) { + // No results! + handleFormErrors( + { + 'serial': [ + '{% trans "No matching serial number" %}', + ] + }, fields, opts + ); + } else if (response.length > 1) { + // Too many results! + handleFormErrors( + { + 'serial': [ + '{% trans "More than one matching result found" %}', + ] + }, fields, opts + ); + } else { + $(opts.modal).modal('hide'); + + // Redirect + var pk = response[0].pk; + location.href = `/stock/item/${pk}/`; + } + }, + error: function(xhr) { + showApiError(xhr, opts.url); + $(opts.modal).modal('hide'); + } + } + ); + } + }); +} + /* Stock API functions * Requires api.js to be loaded first @@ -1101,7 +1213,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/page_base.html b/InvenTree/templates/page_base.html index 506120972a..17077700a2 100644 --- a/InvenTree/templates/page_base.html +++ b/InvenTree/templates/page_base.html @@ -24,29 +24,35 @@ {% block page_info %}
-
-
-
- {% block details_left %} -
-
- {% block thumbnail %} - {% endblock %} -
-
- {% block details %} - {% endblock %} + {% block details_above %} + {% endblock details_above %} +
+
+
+
+ {% block details_left %} +
+
+ {% block thumbnail %} + {% endblock thumbnail %} +
+
+ {% block details %} + {% endblock details %} +
+ {% endblock details_left %}
- {% endblock %}
-
-
-
- {% block details_right %} - block details_right - {% endblock %} +
+
+ {% block details_right %} + block details_right + {% endblock details_right %} +
+ {% block details_below %} + {% endblock details_below %}
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 %} - +
{% if icon %}{% endif %} - {% if text %}{% endif %} + {% if text %}{% endif %}
-
+
\ No newline at end of file diff --git a/InvenTree/templates/sidebar_item.html b/InvenTree/templates/sidebar_item.html index 00e56b2634..85211a0c3a 100644 --- a/InvenTree/templates/sidebar_item.html +++ b/InvenTree/templates/sidebar_item.html @@ -1,8 +1,8 @@ {% load i18n %} - + - + {% if badge %} diff --git a/InvenTree/templates/sidebar_link.html b/InvenTree/templates/sidebar_link.html index 6379c129c2..9323cf4af4 100644 --- a/InvenTree/templates/sidebar_link.html +++ b/InvenTree/templates/sidebar_link.html @@ -1,4 +1,4 @@ {% load i18n %} - + diff --git a/InvenTree/users/models.py b/InvenTree/users/models.py index 8b47a53621..844fe55000 100644 --- a/InvenTree/users/models.py +++ b/InvenTree/users/models.py @@ -148,7 +148,6 @@ class RuleSet(models.Model): # Core django models (not user configurable) 'admin_logentry', 'contenttypes_contenttype', - 'sessions_session', # Models which currently do not require permissions 'common_colortheme', @@ -162,6 +161,7 @@ class RuleSet(models.Model): 'error_report_error', 'exchange_rate', 'exchange_exchangebackend', + 'user_sessions_session', # Django-q 'django_q_ormq', diff --git a/README.md b/README.md index 1f64f81050..ba3d35e402 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,7 @@ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Coverage Status](https://coveralls.io/repos/github/inventree/InvenTree/badge.svg)](https://coveralls.io/github/inventree/InvenTree) +[![Crowdin](https://badges.crowdin.net/inventree/localized.svg)](https://crowdin.com/project/inventree) ![PEP](https://github.com/inventree/inventree/actions/workflows/style.yaml/badge.svg) ![SQLite](https://github.com/inventree/inventree/actions/workflows/coverage.yaml/badge.svg) ![MySQL](https://github.com/inventree/inventree/actions/workflows/mysql.yaml/badge.svg) diff --git a/ci/check_js_templates.py b/ci/check_js_templates.py index b9db7fe612..71b9912f3a 100644 --- a/ci/check_js_templates.py +++ b/ci/check_js_templates.py @@ -105,7 +105,7 @@ for filename in pathlib.Path(js_dynamic_dir).rglob('*.js'): data = js_file.readlines() pattern = r'{% trans ' - + err_count = 0 for idx, line in enumerate(data): diff --git a/docker/init.sh b/docker/init.sh index b598a3ee79..7622806d0f 100644 --- a/docker/init.sh +++ b/docker/init.sh @@ -38,5 +38,8 @@ fi cd ${INVENTREE_HOME} +# Collect translation file stats +invoke translate-stats + # Launch the CMD *after* the ENTRYPOINT completes exec "$@" diff --git a/package.json b/package.json new file mode 100644 index 0000000000..b4f14ec92f --- /dev/null +++ b/package.json @@ -0,0 +1,7 @@ +{ + "dependencies": { + "eslint": "^8.3.0", + "eslint-config-google": "^0.14.0", + "markuplint": "^1.11.4" + } +} diff --git a/requirements.txt b/requirements.txt index 7d5d2568a9..ba7a6fefa9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -24,6 +24,7 @@ django-q==1.3.4 # Background task scheduling django-sql-utils==0.5.0 # Advanced query annotation / aggregation django-stdimage==5.1.1 # Advanced ImageField management django-test-migrations==1.1.0 # Unit testing for database migrations +django-user-sessions==1.7.1 # user sessions in DB django-weasyprint==1.0.1 # django weasyprint integration djangorestframework==3.12.4 # DRF framework flake8==3.8.3 # PEP checking diff --git a/setup.cfg b/setup.cfg index c30425b9a1..b4b0af8836 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,26 +1,22 @@ [flake8] ignore = - # - W293 - blank lines contain whitespace - W293, + # - W605 - invalid escape sequence W605, # - E501 - line too long (82 characters) - E501, E722, + E501, + # - E722 - do not use bare except + E722, # - C901 - function is too complex C901, - # - N802 - function name should be lowercase (In the future, we should conform to this!) + # - N802 - function name should be lowercase + # TODO (In the future, we should conform to this!) N802, # - N806 - variable should be lowercase N806, + # - N812 - lowercase imported as non-lowercase N812, -exclude = .git,__pycache__,*/migrations/*,*/lib/*,*/bin/*,*/media/*,*/static/*,*ci_*.py* +exclude = .git,__pycache__,*/migrations/*,*/lib/*,*/bin/*,*/media/*,*/static/* max-complexity = 20 [coverage:run] source = ./InvenTree -omit = - InvenTree/manage.py - InvenTree/setup.py - InvenTree/InvenTree/middleware.py - InvenTree/InvenTree/utils.py - InvenTree/InvenTree/wsgi.py - InvenTree/users/apps.py diff --git a/tasks.py b/tasks.py index b33af84384..7408bb40b5 100644 --- a/tasks.py +++ b/tasks.py @@ -3,6 +3,8 @@ import os import json import sys +import pathlib +import re try: from invoke import ctask as task @@ -277,7 +279,6 @@ def content_excludes(): excludes = [ "contenttypes", - "sessions.session", "auth.permission", "authtoken.token", "error_report.error", @@ -289,6 +290,7 @@ def content_excludes(): "exchange.rate", "exchange.exchangebackend", "common.notificationentry", + "user_sessions.session", ] output = "" @@ -469,6 +471,75 @@ def server(c, address="127.0.0.1:8000"): manage(c, "runserver {address}".format(address=address), pty=True) +@task(post=[translate_stats, static, server]) +def test_translations(c): + """ + Add a fictional language to test if each component is ready for translations + """ + import django + from django.conf import settings + + # setup django + base_path = os.getcwd() + new_base_path = pathlib.Path('InvenTree').absolute() + sys.path.append(str(new_base_path)) + os.chdir(new_base_path) + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'InvenTree.settings') + django.setup() + + # Add language + print("Add dummy language...") + print("========================================") + manage(c, "makemessages -e py,html,js --no-wrap -l xx") + + # change translation + print("Fill in dummy translations...") + print("========================================") + + file_path = pathlib.Path(settings.LOCALE_PATHS[0], 'xx', 'LC_MESSAGES', 'django.po') + new_file_path = str(file_path) + '_new' + + # complie regex + reg = re.compile( + r"[a-zA-Z0-9]{1}"+ # match any single letter and number + r"(?![^{\(\<]*[}\)\>])"+ # that is not inside curly brackets, brackets or a tag + r"(? replace regex matches with x in the read in (multi)string + file_new.write(f'msgstr "{reg.sub("x", last_string[7:-2])}"\n') + last_string = "" # reset (multi)string + elif line.startswith('msgid "'): + last_string = last_string + line # a new translatable string starts -> start append + file_new.write(line) + else: + if last_string: + last_string = last_string + line # a string is beeing read in -> continue appending + file_new.write(line) + + # change out translation files + os.rename(file_path, str(file_path) + '_old') + os.rename(new_file_path, file_path) + + # compile languages + print("Compile languages ...") + print("========================================") + manage(c, "compilemessages") + + # reset cwd + os.chdir(base_path) + + # set env flag + os.environ['TEST_TRANSLATIONS'] = 'True' + + @task def render_js_files(c): """